Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:是否对视图控制器的所有对象使用弱?_Ios_Automatic Ref Counting - Fatal编程技术网

iOS:是否对视图控制器的所有对象使用弱?

iOS:是否对视图控制器的所有对象使用弱?,ios,automatic-ref-counting,Ios,Automatic Ref Counting,我仍然在努力解决iOS中的弱项和强项:现在我的应用程序几乎完成了,实际上我的视图控制器中的所有对象都很弱,并且应用程序正在工作。但这是正确的吗?到目前为止,我所学到的出口应该总是很弱的,而且它们是。但是视图控制器模型的对象呢?它们应该是弱的还是强的 或者换句话说:我什么时候必须使用strong?您应该了解内存管理。阅读本主题 我建议使用弱和强 strong-您可以为下面的列表创建strong属性 模型对象 yourdatasource属性 通过编程创建的UIobject(UIButton、UI

我仍然在努力解决iOS中的弱项和强项:现在我的应用程序几乎完成了,实际上我的视图控制器中的所有对象都很弱,并且应用程序正在工作。但这是正确的吗?到目前为止,我所学到的出口应该总是很弱的,而且它们是。但是视图控制器模型的对象呢?它们应该是弱的还是强的


或者换句话说:我什么时候必须使用strong?

您应该了解内存管理。阅读本主题

我建议使用
弱和强

strong-您可以为下面的列表创建strong属性

  • 模型对象
  • yourdatasource属性
  • 通过编程创建的UIobject(UIButton、UILabel..等)
弱:-您可以为下面的列表创建弱属性

  • 委托必须是弱属性

  • 所有IBOutlet必须是弱属性


注意:任何访问者都可以用您的观点编辑我的答案。我知道,我错过了这些列表中的很多元素。

这里有一个很好的解释,你可以从所有权的角度来考虑。。。视图控制器拥有或对其操作至关重要的对象应该是强对象。由其他对象拥有的引用(例如,您的对象可以由您的NIB拥有)可能很弱。另一种情况:如果您具有父子关系,例如超级视图/子视图。。。父视图拥有其子视图(子视图为强视图),而子视图不拥有其父视图(父视图为弱视图)。坚持这条规则以避免保留周期。这在很大程度上取决于你的内存管理理念;它定义了
中的哪一个是好的选择。因此作为一般规则(我喜欢简单:-):我在.h文件中创建的所有对象都是强的,除了在interface builder中通过拖放创建的所有IBoutlet正确吗?正确。但不要将所有对象都保存在.h文件中。若将对象用于当前视图控制器,则该对象必须仅对当前视图控制器可见。如果创建为公共属性,则其他viewcontroller也可以看到该属性。这是正确的,但它就像婴儿编程一样。读取此封装数据-