iOS-多線程-記憶體管理

來源:互聯網
上載者:User

標籤:

iOS與OSX 多線程和記憶體管理  總結

一、              自動引用計數

1.自動引用計數(ARC)就是指記憶體管理中對引用採用自動計數的技術。

滿足以下條件即可使用這種功能:

Xcode 版本為4.2以上;

使用LLVM編譯器 版本為3.0以上;

編譯器選項設定ARC為有效;

2.記憶體管理/引用計數

 記憶體管理的思考方式:

                                                2.1自己產生的對象,自己持有;

                                                2.2非自己產生的對象,自己也能持有;

                                                2.3不需要自己持有的對象時釋放;

                                                2.4非自己持有的對象無法釋放;

2.1自己產生的對象,自己持有:               

使用以下名稱開頭的方法意味著自己產生的對象只有自己持有

                                                        alloc;

                                                        new;

                                                        copy;

                                                        mutableCopy;

2.2非自己產生的對象,自己也能持有:

擷取對象的方法還有:NSMutableArray 類 的array 類方法

程式碼範例:

取得非自己產生,非自己持有的對象:

 id obj = [NSMutableArray     array ];

自己持有對象

[obj retain];

2.3不需要自己持有的對象時釋放:

自己釋放對象

[obj release];

2.4非自己持有的對象無法釋放

  代碼可以編譯通過,但是強行釋放會導致程式崩潰

3.alloc/retain/release/dealloc的實現

         在Objective-C的對象中存有引用計數這一整數;

         調用 alloc 或是 retain 方法後,引用計數加1;

         調用 release 後,引用計數值減1;

         引用計數值為時,調用dealloc方法廢棄對象;

 

                                                                

iOS-多線程-記憶體管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.