__weak修飾符的優點,除了解決迴圈引用的問題,在持有某物件的弱引用時,若該物件被廢棄,則此弱引用將自動失效並且處於nil被賦值的狀態(空弱引用)
2. 儘管ARC式的記憶體管理時編譯器的工作,但附有 __unsafe_unretained 修飾符的變數不屬於編譯器的記憶體管理物件。
3. __weak 修飾符只能用於ios5以上以及OS X Lion 以上版本的應用程式。
4.將生成的物件直接賦給__weak 或者__unsafe_unretained 的變數會產生警告 [-Warc-unsage-ratained-assign];
需將強引用的物件賦值給__weak 或者__unsafe_unretained 的變數。
5. 在ARC下,使用@autoreleasepool塊來替代“NSAutoreleasePool類物件生成、持有及廢棄”這一範圍。
6. obj為強引用,自己持有物件。該物件由編譯器判斷其方法後,自動註冊到autoreleasepool,因為變數obj超出了作用域,強引用失效,所以自動釋放了自己持有的物件。
同時隨著@autoreleasepool塊的結束,註冊到autoreleasepool中的所有物件被自動釋放。因為物件的所有者不存在,所以廢棄物件。
__weak修飾符的優點,除了解決迴圈引用的問題,在持有某物件的弱引用時,若該物件被廢棄,則此弱引用將自動失效並且處於nil被賦值的狀態(空弱引用)
2. 儘管ARC式的記憶體管理時編譯器的工作,但附有 __unsafe_unretained 修飾符的變數不屬於編譯器的記憶體管理物件。
3. __weak 修飾符只能用於ios5以上以及OS X Lion 以上版本的應用程式。
4.將生成的物件直接賦給__weak 或者__unsafe_unretained 的變數會產生警告 [-Warc-unsage-ratained-assign];
需將強引用的物件賦值給__weak 或者__unsafe_unretained 的變數。
5. 在ARC下,使用@autoreleasepool塊來替代“NSAutoreleasePool類物件生成、持有及廢棄”這一範圍。
6. obj為強引用,自己持有物件。該物件由編譯器判斷其方法後,自動註冊到autoreleasepool,因為變數obj超出了作用域,強引用失效,所以自動釋放了自己持有的物件。
同時隨著@autoreleasepool塊的結束,註冊到autoreleasepool中的所有物件被自動釋放。因為物件的所有者不存在,所以廢棄物件。