【问题标题】:Why use a strong property to hold the picker view [duplicate]为什么使用强大的属性来保存选择器视图 [重复]
【发布时间】: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


【解决方案1】:

Apple 建议 outlets should be declared as weak references

我似乎记得以前的建议是相反的。如果是这样,您的示例似乎是在建议使用 strong(或 retain,如果它最初早于 ARC)时编写的。

(我不认为这是重复的,因为这个问题专门针对网点,而不是关于strongweak 之间的根本区别。)

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2012-10-05
    • 2012-07-09
    • 2021-01-08
    相关资源
    最近更新 更多