处理单例对象

时间:2012-03-12 14:07:59

标签: iphone objective-c ios singleton

很抱歉问基本和一些更重要的棘手问题。我有一个单例类已经存在于我的应用程序中(遗憾的是我没有实现该类)。现在我正在检查项目的整个代码使用单例类显示内存泄漏分析器单例类。我不确定代码是否正确,因为句柄单例类非常棘手。请任何人建议我为什么分析器给我泄漏。我附加了单例类方法请查看截图singleton

在我的项目中,我们调用[className sharedDataSource];很多次。请提前告诉我一些这方面的知识。

2 个答案:

答案 0 :(得分:1)

我认为这是正确的。从单身人士的角度来考虑它。单例是一个存在的类,整个应用程序只有一个实例。这是一个有目的的内存泄漏。该类已声明,并且不应该被释放,以便稍后可用。

如果你在objective-c中使用这个模式,我认为你有责任在不再需要单例时清除内存。

答案 1 :(得分:1)

我认为真的可以非常安全地忽略这个警告..对于单身人士如何真正表现为单身人士的更多解释,你可能会发现this link非常有启发性。

长话短说,所有对alloc的调用依次调用allocwithzone,在这个allocwithzone中,有一个条件可以确保alloc只发生一次。同意,实施是非常不稳定的。然而,如果您想要稍后重构或者甚至仅仅是为了学术兴趣,有很多不同的方法可以实现单例,如here所示。