所以我有一個支持iOS 4的項目,所以我所有的IBOutlets都是__unsafe_unretained
甚至是IBOutlets,它們都位於控制器主視圖(獨立視圖在同一個nib中)之外,並且都工作得很好。弱和unsafe_unretained之間的區別
所以,時間已經到了,現在的客戶希望支持的iOS 5所以我們的團隊改變了所有的__unsafe_unretained
IBOutlets爲__weak IBOutlets
但現在不被設置爲nil
(除viewdidload
)主視圖內IBOutlets所以我們無法在稍後添加它們。
如果我考慮一下,它是有道理的,因爲如果沒有視圖(主視圖)保留這些IBOutlet,它們應該被釋放並歸零(我不知道這是否是正確的詞),所以解決方案是除去那些IBOutlets
但__weak
什麼沒有意義對我來說是爲什麼unsafe_unretained
和weak
之間的不同的行爲,在我腦海中的那些unsafe_unretained
應該被釋放,當應用程序試圖訪問他們,他們應該指向到一個無效的引用,然後應用程序應該崩潰。
我認爲unsafe__unretained是一樣弱,但沒有歸零。
我在這裏錯過了什麼嗎?
謝謝。
你是對的。 unsafe_unretained不包含引用。 – Francesco