ARC 與非ARC 之間的轉換,以及如何使一個項目中,ARC與非ARC共存

  1,非ARC 轉 ARC的操做框架

  XCode 的 Edit -- Refactor -- Convert to Object-C ARC (注意,通常在一個大項目中,不多直接使用此方法,其正確率有待考慮,畢竟手動內存管理較爲複雜,若是出現錯誤,很難排查)ui

  2,ARC 與 非ARC共存指針

  需求來源:當咱們在項目中使用一些古老的框架時,該框架就可能使用手動內存管理.而公司開發的項目可能採起ARC.此時如何將二者整合到一塊兒?對象

  解決方法:選中改項目---Build Phase -- 雙擊非ARC 文件,輸入 -fno-obj-arc便可保證不會由於當前使用了ARC,對非ARC文件報錯.內存

 

  提起ARC,下面簡單談下我的對ARC的理解.資源

  能夠簡單的理解爲,有強指針指向的對象不會被系統回收,而沒有強指針指向(弱指針或者沒有)都會被系統回收開發

  通常默認的指針就是強指針(strong),而使用weak修飾的指針爲弱指針.it

  然而,並非你使用了ARC就不會出現內存泄漏的狀況.什麼是內存泄漏?就是該對象已經再也不使用了,而還存在內存中,佔用內存資源.這叫內存泄漏.那麼,若是你已經不使用該對象了,還一直使用強指針指向它,又會怎樣?若是出現循環引用(互相強指針指向對方)呢?又會怎樣?內存管理

  因此,在使用過程當中,依然要分析何時使用strong,何時使用weak.內存泄漏

  上文提到的循環引用的解決方案:一方設置爲weak,一方設置爲strong便可.

相關文章
相關標籤/搜索