Objective c 单例中的NSMutableArray。强弱属性?

Objective c 单例中的NSMutableArray。强弱属性?,objective-c,ios,nsmutablearray,automatic-ref-counting,Objective C,Ios,Nsmutablearray,Automatic Ref Counting,我对如何在我的Singleton中声明属性有些迷茫。我应该使用强还是弱?特别是我有一个NSMutableArray属性,我不知道该怎么办。有人能详细解释一下吗 谢谢这与单例无关,完全取决于数组的使用方式。是私人的吗?公众?只读?读写?这取决于所有权,就像其他一切一样。如果您的单身汉拥有该阵列,请使用strong或copy。否则使用弱 也就是说,直接公开可变集合通常不是一个好主意。如果您只需要其他类就可以读取它,请在内部使用NSMutableArray,并公开一个NSArray副本。如果其他类需要

我对如何在我的Singleton中声明属性有些迷茫。我应该使用
还是
?特别是我有一个
NSMutableArray
属性,我不知道该怎么办。有人能详细解释一下吗


谢谢

这与单例无关,完全取决于数组的使用方式。是私人的吗?公众?只读?读写?这取决于所有权,就像其他一切一样。如果您的单身汉拥有该阵列,请使用
strong
copy
。否则使用


也就是说,直接公开可变集合通常不是一个好主意。如果您只需要其他类就可以读取它,请在内部使用
NSMutableArray
,并公开一个
NSArray
副本。如果其他类需要修改集合,最好公开一组修改内部可变数组的集合。

这与单例无关,完全取决于数组的使用方式。是私人的吗?公众?只读?读写?这取决于所有权,就像其他一切一样。如果您的单身汉拥有该阵列,请使用
strong
copy
。否则使用


也就是说,直接公开可变集合通常不是一个好主意。如果您只需要其他类就可以读取它,请在内部使用
NSMutableArray
,并公开一个
NSArray
副本。如果其他类需要修改集合,最好公开一组修改内部可变数组的集合。

感谢您的解释。因此,在本例中,我希望它是可读写的,因为在应用程序的过程中需要对它进行读写。那么使用(非原子,读写)或(非原子,强)是否有意义呢。很抱歉试图掌握它的诀窍请记住变异属性和写入属性之间的区别。如果确实需要属性本身可写,那么可以使用
(非原子,强)
(非原子,复制)
readwrite
是隐式的。感谢您的解释。因此,在本例中,我希望它是可读写的,因为在应用程序的过程中需要对它进行读写。那么使用(非原子,读写)或(非原子,强)是否有意义呢。很抱歉试图掌握它的诀窍请记住变异属性和写入属性之间的区别。如果确实需要属性本身可写,那么可以使用
(非原子,强)
(非原子,复制)
readwrite
是隐式的。