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;};

 

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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