什么時候在block中不需要使用weakself 問題 我們知道,在使用block時為了避免循環引用,通常需要使用weakself與strongself,例如: 那么什么時候在block里調用self,不需要使用weak self呢? 答:在block本身不被self持有,而被別的對象 ...
問題 我們知道,在使用 block 的時候,為了避免產生循環引用,通常需要使用 weakSelf 與 strongSelf,寫下面這樣的代碼: 那么請問:什么時候在 block 里面用 self,不需要使用 weak self 答案 當 block 本身不被 self 持有,而被別的對象持有,同時不產生循環引用的時候,就不需要使用 weak self 了。最常見的代碼就是 UIView 的動畫代碼 ...
2016-12-08 08:35 0 4760 推薦指數:
什么時候在block中不需要使用weakself 問題 我們知道,在使用block時為了避免循環引用,通常需要使用weakself與strongself,例如: 那么什么時候在block里調用self,不需要使用weak self呢? 答:在block本身不被self持有,而被別的對象 ...
問題 繼續回答昨天的問題第二問。 我們知道,在使用 block 的時候,為了避免產生循環引用,通常需要使用 weakSelf 與 strongSelf,寫下面這樣的代碼: 那么請問:為什么 block 里面還需要寫一個 strong self,如果不寫會怎么樣? 答案 ...
題目:找出兩個 UIView 的最近的公共 View,如果不存在,則輸出 nil 。 分析:這其實是數據結構里面的找最近公共祖先的問題。 一個 UIViewController 中的所有 view 之間的關系其實可以看成一顆樹,UIViewController 的 view 變量是這顆樹的根 ...
問題 weak 變量在引用計數為0時,會被自動設置成 nil,這個特性是如何實現的? 答案 在 Friday QA 上,有一期專門介紹 weak 的實現原理。https://mikeash.co ...
前言: 最近都在折騰 Sagit 架框的內存釋放的問題,所以對這一塊有些心得。 對於新手,學到的文章都在教你用:typeof(self) __weak weakSelf = self。 對於老手,可能早習慣了到處了WeakSelf了。 這次,就來學學,如何不用WeakSelf ...
一個 Objective-C 對象的內存結構是怎樣的? 如果把類的實例看成一個C語言的結構體(struct),它首先包含的是一個 isa 指針,而類的其它成員變量依次排列在結構體中。排列順序如下圖所示: 為了驗證該說法,我們在Xcode中新建一個工程,在main.m中運行 ...
轉載,原文: http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block/ 當然有一個更詳細的專題: http://tanqisen.github.io ...
我們知道,ConcurrentHashmap(1.8)這個並發集合框架是線程安全的,當你看到源碼的get操作時,會發現get操作全程是沒有加任何鎖的,這也是這篇博文討論的問題——為什么它不需要加鎖呢? ConcurrentHashMap的簡介 “我想有基礎的同學知道在jdk1.7中是采用 ...