一點一滴,編程人生

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            69 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks

          有時我們寫個代碼開源出來給別人用時,會被其他開發者抱怨編譯不了,很多情況是版本的問題,尤其現在ARC的出現后關于weak,strong的問題讓人頭疼。
          有個開源代碼這里做的很不錯,就是MBProgressHUD
          看下他是怎么做的:

          1. #ifndef MB_STRONG
          2. #if __has_feature(objc_arc)
          3.     #define MB_STRONG strong
          4. #else
          5.     #define MB_STRONG retain
          6. #endif
          7. #endif
          8.  
          9. #ifndef MB_WEAK
          10. #if __has_feature(objc_arc_weak)
          11.     #define MB_WEAK weak
          12. #elif __has_feature(objc_arc)
          13.     #define MB_WEAK unsafe_unretained
          14. #else
          15.     #define MB_WEAK assign
          16. #endif
          17. #endif

          非ARC的retain,相當于ARC的strong
          iOS5的ARC中weak能在銷毀時自動賦值nil,這是iOS4.x上使用ARC不具備,所以用的unsafe,非ARC自然是assign

          posted on 2012-04-23 15:49 writegull 閱讀(1425) 評論(0)  編輯  收藏 所屬分類: iphone
          主站蜘蛛池模板: 天镇县| 洛宁县| 南通市| 温泉县| 得荣县| 宝应县| 呈贡县| 临夏市| 乌兰察布市| 宁都县| 崇州市| 哈巴河县| 双江| 于田县| 云林县| 新竹县| 柞水县| 常德市| 宿迁市| 手游| 阳山县| 邵武市| 府谷县| 庆云县| 龙江县| 临夏市| 勃利县| 甘谷县| 翼城县| 石首市| 大荔县| 寿宁县| 商洛市| 河北省| 抚远县| 兴业县| 绥德县| 西畴县| 彭山县| 镇原县| 开江县|