如何确保在IOS 5中使用ARC来破坏单身人士?

比方说,我想创build一个里面有一些数据的单例。 数据只能dynamic分配一次,就像在单例中所期望的那样。

但是我现在想知道这个数据何时以及如何被释放。 我应该build立摧毁单身人士的特殊方法吗? 更具体的说 – 这个单例的“dealloc”方法会被执行吗? 谁负责?

你可以声明你明确调用的方法/函数。

最简单的方法是让一个静态的C ++类保存它,然后释放它的析构函数。 如果你有多个单例,那么这个方法不能很好地扩展,因为销毁顺序是实现定义的。

另一种select(也就是更好的devise)是避免单例方法,只是将它用作另一个在你的应用程序中生存的类的常规实例(一个应用程序委托是一个众所周知的例子)。

至于“何时”,取决于它的依赖关系以及如何使用它。 尽量减less外界对破坏的影响也是一件好事。

一般来说,单身人士与正常的物体并没有什么不同。 它被释放,如果没有(强)参考了。 通常,只有通过静态variables来控制有一个对象。 这个variables是在编译时创build的; 因此它不能被释放。 但是所有“真实”的东西都可以。