OC-框架
框架是什么
框架是一种包类型, 它是一种具有指定布局的目录层次结构,用于把共享的动态库、头文件和资源(图像、声音、nib文件)
组织进某个单位。从事IOS和MAC OSX开发所需的共享式动态库被包装为框架
可以看出: OC中的框架类似java中的jar包, 只不过形式是共享式动态库框架
- 包罗框架:他们是指包含两个或更多个其他框架的框架
- 使用框架前需要导入: #import
CFMutableArrayRef cfMutableArray = CFArrayCreateMutable(
CFAllocatorRef alloctor,
CFIndex capacity,
const CFArrayCallBacks* callBacks
);
- CoreFoundation对象的内存管理
- 它拥有自己的引用计数的内存管理系统, 与OC的引用计数类似
- 我们拥有使用 “Create” 或 “Copy”的CF函数而创建的任何对象
- CFRelease函数可以放弃CF对象的所有权
- OC的ARC系统不会管理CF对象
- 利用NULL参数调用CFRetain或CFRelease将导致程序崩溃(nil交给retain和release就不会)
免费桥接
- 一些Foundation类所具有的内存悲剧与对应的CoreFoundation类的内存布局几乎完全相同
- 因此,为了方便使用,我们可以直接把CF对象强转为Foundation对象
- 例如: NSString 与 CFStringRef 之间就可以直接强转
Apple提供的其他框架
- WebKit, ImageIO, CoreImage, CoreAudio
- OpenGL:用于执行快速的、硬件加速的3D图形处理的C语言框架
- OpenAL:开源的音频库
- OpenCL:一个C语言框架,使用GPU和多核CPU的能力执行高性能的计算。
OC中的框架,可以通过查看:/System/Library/Frameworks的内容