OC-框架

本文介绍了OC框架的概念,将其比喻为iOS和Mac OS X开发中的共享动态库,类似于Java的jar包。讨论了框架的组织结构,包括包罗框架,并指出在使用框架前需要#import。还涉及CoreFoundation对象的内存管理,强调OC的ARC系统不管理CF对象,同时介绍苹果提供的其他框架如WebKit、ImageIO等,以及如何通过查看/System/Library/Frameworks来了解OC中的框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值