为什么要使用一个强属性来持有选择器视图

10 浏览
0 Comments

为什么要使用一个强属性来持有选择器视图

我在iOS开发的起步阶段,在选择器视图的章节中看到了这个例子。

我不明白为什么这里要使用强引用。

我们通常使用弱引用来引用UI组件。

它们的父视图将持有一个子视图的数组。(持有子视图的数组,同时也持有每个子视图,我对吗?)

因此,我认为我们可以只使用弱引用来引用选择器,因为它是主视图的子视图。而主视图将持有选择器。

0
0 Comments

为什么要使用strong属性来持有picker view?

在iOS开发中,Apple建议将outlets声明为weak引用。这个建议的出现是有原因的。在过去,这个建议恰恰是相反的。如果是这样的话,那么很可能你的示例是在建议使用strong(或retain,如果它最初是在ARC之前编写的)的时候编写的。

为什么要使用strong属性来持有picker view?这个问题的出现是因为在iOS开发中,Apple推荐使用weak属性来持有outlets,而不是strong属性。这个建议的改变可能是因为ARC(自动引用计数)的引入。在ARC之前,开发者需要手动管理内存,使用retain来持有对象。而在ARC之后,系统会自动管理内存,使用弱引用可以避免循环引用的问题。

解决方法就是将outlets声明为weak引用,而不是strong引用。这样可以避免循环引用的问题,提高内存管理的效率。由于picker view通常是作为视图控制器的子视图存在,所以使用weak属性来持有picker view是更合适的做法。

总之,使用strong属性来持有picker view可能是在ARC之前的做法,而现在使用weak属性更加合适。这个建议的改变可能是因为ARC的引入,可以更方便地管理内存,避免循环引用的问题。所以,建议开发者在iOS开发中使用weak属性来持有outlets,而不是strong属性。

0