所以我有一个支持 iOS 4 的项目,所以我所有的 IBOutlets__unsafe_unretained
甚至是在 nib 中但在控制器主视图之外的 IBOutlets(同一个 nib 中的单独视图)并且都运行良好。
所以时间到了,现在客户只想支持 iOS 5,所以我们的团队更改了所有__unsafe_unretained
IBOutlets,__weak IBOutlets
但现在不在主视图内的 IBOutlets 设置为nil
(除了 in viewdidload
),因此我们以后无法添加它们。
如果我考虑一下,这是有道理的,因为如果没有视图(主视图)保留那些 IBOutlets,它们应该被释放并归零(我不知道这是否是正确的词),所以解决方案是__weak
从那些IB奥特莱斯
但是对我来说没有意义的是为什么 和 之间的不同行为unsafe_unretained
,weak
在我的脑海中unsafe_unretained
,应该释放它们,当应用程序尝试访问它们时,它们应该指向一个无效的引用,然后应用程序应该崩溃。
我认为 unsafe__unretained 与弱相同,但没有归零。
我在这里错过了什么吗?
谢谢。