__weak如何實現物件值自動設定為nil的
詳情請檢視:http://blog.csdn.net/hherima/article/details/38661803
總結如下:
weak的功能:
* 若使用__weak修飾符的變數引用物件被廢棄時,則將nil賦值給該變數
* 使用附有__weak修飾符的變數,就是使用註冊到autoreleasepool的物件
ARC物件釋放的過程:
1. objc_release
2. 因為引用計數為0所以執行dealloc
3. _objc_rootDealloc
4. object_dispose
5. objc_destructInstance
6. objc_clear_deallocating
而,呼叫objc_clear_deallocating的動作如下:
1. 從weak表中獲取廢棄物件的地址為鍵值的記錄。
2. 將包含在記錄中的所有附有__weak修飾符變數的地址,賦值為nil
3. 從weak表中刪除記錄
4. 從引用計數表中刪除廢棄物件的地址作為鍵值的記錄
相關文章
- 如何判斷一個 interface{} 的值是否為 nil ?
- TypeScript如何實現DDD的值物件?TypeScript物件
- iOS main()執行前的過程 + weak 置 nil的過程iOSAI
- 前端定義一個物件的時候,key值如何設定為數字,並抽成常量前端物件
- 自動化測試平臺設計與實現(二、自動化測試用例物件設計實現、關鍵字物件設計與實現)物件
- 如何從測試自動化中實現價值
- C#給自動屬性設定預設值C#
- 淺析weak指標的實現指標
- Python如何設定自動補全?Python
- excel如何設定自動換行?Excel
- 為什麼 Go 裡值為 nil 可以呼叫函式?Go函式
- win10如何設定自動登入 win10設定自動登入的方法Win10
- win10如何設定自動鎖定螢幕_win10設定自動鎖屏的步驟Win10
- ppt自動播放怎麼設定 ppt如何設定自動播放下一頁
- win10 自動登入如何設定_windows10自動登入的設定步驟Win10Windows
- 如何設定自動獲取ip地址
- 看我如何用定值 Cookie 實現反爬Cookie
- 如何實現自己的SpringBoot自動配置Spring Boot
- IT 自動化:如何去實現
- 自動化測試平臺設計與實現(三、自動化用例物件成為可執行檔案,用例執行機的設計與實現、用例除錯)物件除錯
- win10自動鎖定如何設定_win10系統怎麼設定自動鎖屏Win10
- 關於零值和nil
- Oracle實現自增列(序列+觸發器實現、Identity Columns新特性、序列作為預設值)Oracle觸發器IDE
- XamarinAndroid元件教程設定動畫的設定插值器NaNAndroid元件動畫
- DDD的實體、值物件、聚合根的基類和介面:設計與實現物件
- 如何設定自動化測試斷言?
- 如何設定HTTP自動跳轉到HTTPSHTTP
- 鈑金件如何實現自動引數化設計
- APP是如何實現自動續費的?APP
- 如何實現 AppStore App 的自動下載APP
- word多級列表如何自動設定 word多級列表設定的步驟
- CSS如何設定不可點選?CSS如何設定不可點選的實現方法CSS
- iOS如何實現自動化打包iOS
- 如何實現辦公自動化?
- Go 介面:nil介面為什麼不等於nil?Go
- 如何實現Java 設定動態代理ip的具體操作步驟Java
- cookie的值可以設定為中文嗎?為什麼?如果可以怎麼設定?Cookie
- ABP vNext 實現租戶Id自動賦值插入賦值