iOS:是否对视图控制器的所有对象使用弱?
我仍然在努力解决iOS中的弱项和强项:现在我的应用程序几乎完成了,实际上我的视图控制器中的所有对象都很弱,并且应用程序正在工作。但这是正确的吗?到目前为止,我所学到的出口应该总是很弱的,而且它们是。但是视图控制器模型的对象呢?它们应该是弱的还是强的iOS:是否对视图控制器的所有对象使用弱?,ios,automatic-ref-counting,Ios,Automatic Ref Counting,我仍然在努力解决iOS中的弱项和强项:现在我的应用程序几乎完成了,实际上我的视图控制器中的所有对象都很弱,并且应用程序正在工作。但这是正确的吗?到目前为止,我所学到的出口应该总是很弱的,而且它们是。但是视图控制器模型的对象呢?它们应该是弱的还是强的 或者换句话说:我什么时候必须使用strong?您应该了解内存管理。阅读本主题 我建议使用弱和强 strong-您可以为下面的列表创建strong属性 模型对象 yourdatasource属性 通过编程创建的UIobject(UIButton、UI
或者换句话说:我什么时候必须使用strong?您应该了解内存管理。阅读本主题 我建议使用
弱和强
strong-您可以为下面的列表创建strong属性
- 模型对象
- yourdatasource属性
- 通过编程创建的UIobject(UIButton、UILabel..等)
- 委托必须是弱属性
- 所有IBOutlet必须是弱属性
注意:任何访问者都可以用您的观点编辑我的答案。我知道,我错过了这些列表中的很多元素。这里有一个很好的解释,你可以从所有权的角度来考虑。。。视图控制器拥有或对其操作至关重要的对象应该是强对象。由其他对象拥有的引用(例如,您的对象可以由您的NIB拥有)可能很弱。另一种情况:如果您具有父子关系,例如超级视图/子视图。。。父视图拥有其子视图(子视图为强视图),而子视图不拥有其父视图(父视图为弱视图)。坚持这条规则以避免保留周期。这在很大程度上取决于你的内存管理理念;它定义了
弱
和强
中的哪一个是好的选择。因此作为一般规则(我喜欢简单:-):我在.h文件中创建的所有对象都是强的,除了在interface builder中通过拖放创建的所有IBoutlet正确吗?正确。但不要将所有对象都保存在.h文件中。若将对象用于当前视图控制器,则该对象必须仅对当前视图控制器可见。如果创建为公共属性,则其他viewcontroller也可以看到该属性。这是正确的,但它就像婴儿编程一样。读取此封装数据-