學科: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 編譯開關。