block塊中引用成員變數引起記憶體流失問題,block變數

來源:互聯網
上載者:User

block塊中引用成員變數引起記憶體流失問題,block變數

使用block要注意循環參考,因此在塊中使用self前先使用__weak修飾生產弱引用

這裡記錄另一種情況:沒有使用屬性而是直接使用成員變數的時候

//  私人成員變數@implementation SmartInfoViewController{    UIColor *lightColor;}//  在塊中直接使用lightColor會造成retain cycleself.colBlock = ^(UIColor *col) {    lightColor = col;     // 等價於 self->lightColor = col;};

解決辦法

//  使用前先產生弱引用 __weak typeof(self) ws = self;paint.colBlock = ^(UIColor *col) {    // 必須在內部__strong強引用    __strong typeof(ws) ss = ws;    ss -> lightColor = col;};

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.