为什么我们在iOS中测试时指定“弱”?

时间:2012-04-30 02:31:36

标签: objective-c ios

我注意到使用Sencha测试在XCode中测试视图控制器的推荐方法是通过实例化

@property (nonatomic, readwrite, weak) MyMainViewController* mainViewController; 

为什么不

@property (nonatomic, strong) MyMainViewController* mainViewController;

2 个答案:

答案 0 :(得分:2)

readwrite并非严格必要,因为它是默认值。至于强弱对弱,使用弱的主要原因是避免参考周期(即两个对象具有强引用的对象,因此它们永远不会被释放)。

答案 1 :(得分:1)

正如@borrrden所提到的,当尝试避免保留周期时,弱引用很有用。

如果您正在查看弱引用,我强烈建议您阅读Mike Ash的this post。重要的是要理解归零弱引用和非归零弱引用之间的区别。