在ARC下使用IBOutlet属性的用处?

时间:2011-10-18 22:09:06

标签: iphone objective-c ios automatic-ref-counting

在ARC下,将每个IBOutlet作为财产是什么意思?对于仅在视图控制器内部使用的IBOutlet使用ivars会有什么缺点?

2 个答案:

答案 0 :(得分:8)

如果你没有使用setter / getter方法做任何事情,不要依赖于那些属性的键值观察,并且不要预期子类会从覆盖这些属性中受益,那么就没有真正的缺点在ARC下使用ivars for IBOutlets。

答案 1 :(得分:0)

我一直在为我的“私人”IBOutlets使用ivars并遇到内存泄漏问题。我认为这是因为我的IBOutlets使用__unsafe_unretained属性而不是__weak。我不能使用__weak,因为它在iOS 4上不受支持(我希望我的应用程序向后兼容iOS 4)。很难理解ARC,IBOutlets,viewDidUnload以及所有混乱中真正发生的事情。叹息...

无论如何,当我将IBOutlets从ivars更改为属性时,内存泄漏问题就消失了。

因此,回答我自己的问题,使用ivars for IBOutlets的一个缺点是,如果你有__unsafe_unretained属性,你可能会遇到内存泄漏。