如果你的目标系统是iOS 4.0或以上
使用GCD,它是在Objective-C(线程安全)中创建单例的最好方法吗?
+ (instancetype)sharedInstance
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
instancetype
instancetype只是Objective-C的众多语言扩展之一,每个新版本都会添加更多扩展。
了解它,热爱它。
并将其作为一个例子,说明如何关注底层细节可以让您深入了解转换Objective-C的强大新方法。
参考这里:instancetype
+ (instancetype)sharedInstance
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^
{
sharedInstance = [self new];
});
return sharedInstance;
}
+ (Class*)sharedInstance
{
static dispatch_once_t once;
static Class *sharedInstance;
dispatch_once(&once, ^
{
sharedInstance = [self new];
});
return sharedInstance;
}