關於 文件的編譯選項 OS_OBJECT_USE_OBJC


首先看下 OS_OBJECT_USE_OBJC個宏定義常見用處

出現這段代碼的原因是 GCD中的對象在6.0之前是不參與ARC的,而6.0之后 在ARC下使用GCD也不用關心釋放問題

在之后的SDK中 都是定義了OS_OBJECT_USE_OBJC這個宏的 如下為 9.1 sdk中 系統源碼截圖:

所以我們可以直接這么寫:

@property (noatomic,strong) dispatch_queue_t  queue;

擴展介紹:

現在cocopods很火,不少開源的第三方組件 向下兼容性也很好(支持6.0、甚至更早的版本4.x)

在寫spec文件過程中,經常忽略如下設置:

或者

若忽略配置版本,將兼容更舊的系統版本;這樣在編譯配置中將出現 -DOS_OBJECT_USE_OBJC=0 關閉宏定義

例:

這個問題cocopods官方有介紹 :https://guides.cocoapods.org/syntax/podspec.html#deployment_target

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM