比如说,我想创建一个里面有一些数据的单例。正如在单例中所期望的那样,数据仅动态分配一次。
但我现在想知道何时以及如何发布这些数据。我应该建立特殊的方法来破坏单例吗?更具体地说——何时执行该单例的“dealloc”方法?谁对此负责?
最佳答案
您可以声明显式调用的方法/函数。
最简单的方法是让一个静态 C++ 类持有它,然后在其析构函数中释放它。如果您有多个单例,则此方法不能很好地扩展,因为销毁顺序是实现定义的。
另一种选择(也是更好的设计)是避免使用单例方法,而只是将其用作另一个类中的常规实例,该类在应用程序的整个运行期间都存在(应用程序委托(delegate)是一个众所周知的示例)。
至于“何时”,这取决于它的依赖关系以及它的使用方式。尽量减少外部破坏的影响也很好。
关于ios - 如何确保IOS 5中使用ARC销毁单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064238/