我到处都看到了单例模式的这种特殊实现:
+ (CargoBay *)sharedManager {
static CargoBay *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedManager = [[CargoBay alloc] init];
});
return _sharedManager;
}
并且它似乎被接受为良好做法(尤其是来自CargoBay)。
我不明白的唯一部分是第一行static CargoBay *_sharedManager = nil;
。
你为什么要把这个static
变量设置为nil
?