学科:IOS/KB/内存管理
外观
< Subject:IOS | KB
现在你应该总是使用ARC了。
- weak 只在 iOS 5 以上设备上支持;
- block 中直接访问 iVar 会 retain iVar 的所有者
- 使用 weakref 打破 block 循环引用,可能还需要在 block 中再使用 strongref 保证引用对象在 block 执行期间可用
OC 与 CF 对象间所有权转换要点:
- __bridge,没变化;
- __bridge_transfer,CF 移交给 OC;
- __bridge_retained,OC 移交给 CF,别忘了有可能需要你自己去 CFRelease。
在一个开启ARC的项目中,使用旧式内存管理源代码可能不能通过编译,可以对相关文件加上 -fno-objc-arc 编译开关。