在我的应用程序中,我使用的是singleton类(作为sharedInstance)。当然,我需要在多个类(视图控制器)中使用存储在该单例中的数据。 因为写作
[[[SingletonClass sharedInstance] arrayWithData] count]
或
[[[SingletonClass sharedIntanse] arrayWithData] objectAtIndex:index]
或你在数组上使用的其他一些方法我觉得不舒服,在非单例类的生命周期的开始,指定非单例类的属性(强,非原子)与SingletonClass相同的地址。
self.arrayPropertyOfOtherClassOne = [[SingletonClass sharedInstance] arrayWithData]
以及其他一些课程
self.arrayPropertyOfOtherClassTwo = [[SingletonClass sharedInstance] arrayWithData]
这是一种很好的编程习惯吗?
在我看来,没有什么不好的。属性将指向与Singleton中的属性相同的地址,并且在非单例类之后也将销毁指向单例的属性,因此引用计数=引用计数-1。
我说错了吗?
答案 0 :(得分:2)
在我看来,没有什么不好的。
通常,您希望维护指向单例的指针,而不是指向它包含的某个对象。通过保持指向它包含的对象的指针,您将添加一个更难的依赖项,并且要求该对象不会以某种定义的方式更改或更改。如果您已经定义并记录了它应该没问题,但是,通常单例应该能够销毁该对象并根据需要创建一个新对象,因此您可能需要重新考虑保留对它的引用。
保持对单身人士本身的引用很好,因为永远不会被破坏。
属性将指向与Singleton
中的属性相同的地址
真
并且非单例类之后也将销毁指向单例的属性,因此引用计数=引用计数 - 1。
真