原文:ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify

首先要說說什么時候使用weakSelf和strongSelf。 下面引用一篇博客 到底什么時候才需要在ObjC的Block中使用weakSelf strongSelf 的內容: Objective C 的Block是一個很實用的語法,特別是與GCD結合使用,可以很方便地實現並發 異步任務。但是,如果使用不當,Block 也會引起一些循環引用問題 retain cycle Block 會 retai ...

2016-02-18 16:06 2 8105 推薦指數:

查看詳情

block里的self、weakSelfstrongSelf

ARC下,關於block里面使用self、weakSelfstrongSelf,理解一直沒有特別的透徹,今天花時間研究了一下,總結如下: 其實一共就涉及到兩個問題: 1.是否循環引用了 2.block里面的代碼,不一定執行到哪行時,VC可能就釋放 ...

Fri May 27 02:46:00 CST 2016 1 2159
關於iOS Block當中為什么要用weakSelfstrongSelf的思考

  場景:當你在某個界面請求網絡數據的時候,用戶不願意等待點擊了返回按鈕,此時在Block當中用如下的方式使用weakSelf的話,有可能會奔潰(因為在並發編程的情況下,雖然在if判斷的時候weakself不為空,但是不保證if語句里面的weakself不為空),所以為了安全 ...

Fri May 11 23:15:00 CST 2018 0 1471
@weakify 與 @strongify 實現原理

為了解決 Block 造成的循環引用,iOS 開發過程中常常使用 @weakify 與 @strongify 來解決這個問題。下面就來看下 @weakify 與 @strongify 的實現原理。 准備知識 宏參數(Arguments)的擴展 可變參數宏 宏定義中的重復副作用 宏定義里面 ...

Mon Mar 21 00:03:00 CST 2022 0 710
weakSelfstrongSelf的區別和用處

block會copy要在block中使用的實變量,而copy會是變量的retainCount + 1,如若在不注意很容易造成循環引用。而所謂的循環引用的本質就是,兩個對象相互引用,從而造成對象不能正常的dealloc。所以解決的辦法就是讓引用的一方是weak的,這樣就使得相互引用的閉環被打破,能夠 ...

Thu Jan 04 23:45:00 CST 2018 0 1262
什么時候在block中不需要使用weakSelf

什么時候在block中不需要使用weakself 問題 我們知道,在使用block時為了避免循環引用,通常需要使用weakselfstrongself,例如: 那么什么時候在block里調用self,不需要使用weak self呢? 答:在block本身不被self持有,而被別的對象 ...

Fri Dec 02 17:53:00 CST 2016 0 1448
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM