0

在我的应用程序中,我使用单例类(作为 sharedInstance)。当然,我需要在多个类(视图控制器)中使用存储在该单例中的数据。因为写

[[[SingletonClass sharedInstance] arrayWithData] count]或者

[[[SingletonClass sharedIntanse] arrayWithData] objectAtIndex:index]或者您在数组上使用的其他一些方法不舒服我认为在非单例类的生命周期开始时,将该非单例类的属性(强,非原子)分配给与 SingletonClass 具有相同的地址。

self.arrayPropertyOfOtherClassOne = [[SingletonClass sharedInstance] arrayWithData] 在其他班级

self.arrayPropertyOfOtherClassTwo = [[SingletonClass sharedInstance] arrayWithData]

这是良好的编程习惯吗?

在我看来,没有什么不好的。属性将指向与单例中的属性相同的地址,并且在非单例类将被销毁之后,指向单例的属性也将被破坏,因此引用计数 = 引用计数 - 1。

我对么?

4

1 回答 1

2

在我看来,没有什么不好的。

通常,您希望维护一个指向单例的指针,而不是指向它包含的某个对象。通过保持指向它包含的对象的指针,您正在添加一个更难的依赖关系以及该对象不会更改或以某种定义的方式更改的要求。如果您已经定义并记录了它应该没问题,但是,通常单例应该能够销毁该对象并根据需要创建一个新对象,因此您可能需要重新考虑保留对它的引用。

保持对单例本身的引用很好,因为它永远不会被破坏。

属性将指向与 Singleton 中的属性相同的地址

真的

并且在非单例类之后,指向单例的属性也将被破坏,因此参考计数 = 参考计数 - 1。

真的

于 2013-09-29T16:34:13.507 回答