【发布时间】:2013-01-23 05:11:21
【问题描述】:
我在iOS开发之初的picker view章节看到了这个例子。 而且我不明白为什么它在这里使用强参考。
@property (strong, nonatomic) IBOutlet UIDatePicker *datePicker;
我们总是使用弱属性来引用 UI 组件。
他们的超级视图将持有一个子视图数组。(持有子视图数组,也持有每个子视图,对吗?)。
因此,我认为我们可以只使用弱引用来引用选择器,它是主视图的子视图。主视图将hold选择器。
【问题讨论】:
-
不要依赖superview来获得控件的所有权。如果您出于任何原因必须清除超级视图,您将失去控制权。相反,允许财产拥有它。有关弱和强之间差异的更多详细信息,请参阅此链接:Differences between strong and weak in objective-c
-
@Jeremy 答案和我的理解差不多,但是我还是不明白为什么书上要使用strong属性。
-
@Jeremy 哦,你的意思是我们不想在任何父母被解除分配的情况下放松控制?
-
@Jeremy 您的评论与您添加的链接冲突。澄清一下-如果清除了超级视图,那么保留子视图就没有意义了(因此为什么弱经常用于非根视图)。你不应该在你的视图中保存数据,所以如果控件被删除,这应该不是问题。
标签: ios objective-c ios5 properties