我想创建单身,我不知道该使用什么:dispatch_once或@syncronized。
我的问题是:如果我在一个视图控制器上创建单个对象(使用GCD),然后,我转到另一个视图控制器,Will ARC会破坏我的单个对象吗?如果我将在另一个视图控制器中再次需要它,我可以再次创建它吗?
答案 0 :(得分:0)
如果你正确创建,没有人会破坏它,除了杀死应用程序,因此单身人士只能用于非常具体的任务。
这就是我使用ARC创建单例的方法,它是一个类方法
+ (instancetype)sharedInstance
{
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init];
});
return _sharedObject;
}
在类上调用+ sharedInstance将确保将始终返回相同的对象