一點(diǎn)一滴,編程人生

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            69 隨筆 :: 0 文章 :: 25 評(píng)論 :: 0 Trackbacks

          有時(shí)我們寫(xiě)個(gè)代碼開(kāi)源出來(lái)給別人用時(shí),會(huì)被其他開(kāi)發(fā)者抱怨編譯不了,很多情況是版本的問(wèn)題,尤其現(xiàn)在ARC的出現(xiàn)后關(guān)于weak,strong的問(wèn)題讓人頭疼。
          有個(gè)開(kāi)源代碼這里做的很不錯(cuò),就是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,相當(dāng)于ARC的strong
          iOS5的ARC中weak能在銷(xiāo)毀時(shí)自動(dòng)賦值nil,這是iOS4.x上使用ARC不具備,所以用的unsafe,非ARC自然是assign

          posted on 2012-04-23 15:49 writegull 閱讀(1426) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): iphone
          主站蜘蛛池模板: 福贡县| 台北县| 长岭县| 聂荣县| 滦平县| 府谷县| 当雄县| 体育| 扎鲁特旗| 浑源县| 阜宁县| 吉水县| 北碚区| 黎平县| 余庆县| 金阳县| 蓝田县| 合川市| 安福县| 元氏县| 涿鹿县| 大姚县| 株洲县| 罗源县| 顺义区| 武穴市| 大厂| 扬州市| 兴海县| 太仓市| 河南省| 哈密市| 阿荣旗| 邵阳市| 砚山县| 隆昌县| 达州市| 罗田县| 崇阳县| 兰溪市| 瓦房店市|