問題 我們知道,在使用 block 的時候,為了避免產生循環引用,通常需要使用 weakSelf 與 strongSelf,寫下面這樣的代碼: 那么請問:什么時候在 block 里面用 self,不需要使用 weak self? 答案 當 block 本身不被 self ...
問題 繼續回答昨天的問題第二問。 我們知道,在使用 block 的時候,為了避免產生循環引用,通常需要使用 weakSelf 與 strongSelf,寫下面這樣的代碼: 那么請問:為什么 block 里面還需要寫一個 strong self,如果不寫會怎么樣 答案 在 block 中先寫一個 strong self,其實是為了避免在 block 的執行過程中,突然出現 self 被釋放的尷尬情況 ...
2016-12-08 08:37 0 2470 推薦指數:
問題 我們知道,在使用 block 的時候,為了避免產生循環引用,通常需要使用 weakSelf 與 strongSelf,寫下面這樣的代碼: 那么請問:什么時候在 block 里面用 self,不需要使用 weak self? 答案 當 block 本身不被 self ...
題目:找出兩個 UIView 的最近的公共 View,如果不存在,則輸出 nil 。 分析:這其實是數據結構里面的找最近公共祖先的問題。 一個 UIViewController 中的所有 vie ...
問題 weak 變量在引用計數為0時,會被自動設置成 nil,這個特性是如何實現的? 答案 在 Friday QA 上,有一期專門介紹 weak 的實現原理。https://mikeash.co ...
一個 Objective-C 對象的內存結構是怎樣的? 如果把類的實例看成一個C語言的結構體(struct),它首先包含的是一個 isa 指針,而類的其它成員變量依次排列在結構體中。排 ...
蘋果對編譯器在不斷優化,GCD方法中的block基本都不需要使用weakself,並不會造成循環引用。 dispatch_after官方文檔中對block部分的說明: 一:使用self 從ViewControllerA push ...
_weak typeof(self) weakSelf = self; (一)內存管理原則 1、默認strong,可選weak。strong下不管成員變量還是property,每次使用指針指向一個對象,等於自動調用retain(), 並對舊對象調用release(),所以設為nil等於 ...
iOS經典面試題 前言 寫這篇文章的目的是因為前兩天同學想應聘iOS開發,從網上找了iOS面試題和答案讓我幫忙看看。我掃了一眼,倒吸了一口冷氣,仔細一看,氣的發抖。整篇題目30多個沒有一個答案是對的,總結這篇面試題的作者對iOS機制根本就是一知半解就敢發到網上 ...
100家知名企業今年來iOS面試題合集: 你要的這里都有; 企業要的這里也有; 從基礎開始到進階、深入底層 整理出188個面試題,全是干貨 目錄展示: 1、swift和oc的區別 2、編譯鏈接 3、synthesize & denamic 4、在項目開發中常用的開發工具 ...