cma*_*mac 10 singleton dealloc ios automatic-ref-counting
我有一个单例类,它会累积数据,直到数据写入我的数据库(如果你想知道为什么我用这种方式实现,请看这里).保存数据后,我想破坏单例.我怎么能在ARC中这样做?或者我是偏执狂,我是否需要销毁它?
*您可能会说这是此问题的副本,但此处接受的答案并不具体,无法提供帮助.它说"你可以声明你明确调用的方法/函数." 这个代码可能是什么样的?如果我无法在方法之外释放对象,我怎么可能在方法中将其拉出来?它还说" 最简单的方法是让一个静态C++类保存它,然后在它的析构函数中释放它." 我不懂C++,但是 - 你真的可以在你的应用程序代码中加入C++类吗?
我的单身实现如下:
+(NHCFamilyStatus *)familyStatus
{
static dispatch_once_t pred;
static NHCFamilyStatus *familyStatusSharedObject=nil;
dispatch_once(&pred, ^
{
familyStatusSharedObject = [[NHCFamilyStatus alloc] init];
});
return familyStatusSharedObject;
}
Run Code Online (Sandbox Code Playgroud)
jrt*_*ton 20
如果你销毁这个单例,你将永远无法再创建它(这就是dispatch_once调用的意思).
你不需要销毁单身人士.无论如何都要在单例上有一个方法来删除你不再需要的任何实例变量,但是不需要做任何其他事情.