国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

IOS開發復習筆記(3)-ARC

2019-11-14 20:12:54
字體:
來源:轉載
供稿:網友

1.ARC

當你自己調用了release或retain語句的時候,ARC有效時編譯文件會遇到錯誤,你可以通過-fno-objc-arc和-fobjc-arc兩個編譯器標志在混搭中支持ARC和非ARC的代碼

如下面編譯支持ARC,而文件代碼不支持ARC

# if !__has_feature(objc_arc)//this code do not support to ARC-(void) release{//release your var}#endif

在ARC工程中集成非ARC的第三方代碼:當使用沒有通過ARC編譯的第三方框架時,編譯庫里面的文件需要使用-fno-objc-arc編譯開關。Edit->Refactor->convert to Object-c ARC

在非ARC工程中集成ARC代碼時:不會遇到編譯錯誤,但可能會面臨內存泄露,為避免此類事情的發生,需要使用-fobjc-arc來標記這些通過ARC編譯的第三方代碼

2.框架中的ARC

1)歸零弱引用

弱一用通過持有指針而不關注引用計數的值來避免循環保留,但是當內存(指針指向內存)被銷毀后,弱引用指向將是無效內容。銷毀內存后在訪問指針會導致應用崩潰,歸零引用在銷毀內存后將指針歸零的方法來解決問題。

2)所有權修飾符

ARC會自動幫我們插入retain和release但是我們需要給它一些提示來銷毀已分配內存的準確時機,這些提示就是所有權修飾符

  • __strong
  • __weak
  • __unsafe_unretained
  • __autoreleasing

前三個可用于屬性的聲明,屬性聲明不需要雙下劃線,默認的所有權修飾符是__strong

  1. __strong

因為__strong是默認的,所以使用

@PRoperty (nonatomic,strong) NSString *someString;//等同@property (nonatomic) NSString *someString;

__strong 等同retain。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高密市| 黑龙江省| 海宁市| 从江县| 依安县| 简阳市| 清镇市| 芦山县| 泸水县| 江口县| 玛沁县| 白沙| 保亭| 凌云县| 娄底市| 泗水县| 南昌市| 额敏县| 吴川市| 双辽市| 台湾省| 石台县| 中西区| 法库县| 揭西县| 稷山县| 新泰市| 宁都县| 上高县| 苏尼特右旗| 剑川县| 胶南市| 十堰市| 电白县| 海林市| 雷山县| 元阳县| 芦溪县| 和林格尔县| 华蓥市| 双柏县|