スウィフト3.0でのシングルトンクラスの設定方法。現在、私はこのコードを目的に使用しています。 スウィフト3.0でのシングルトンクラスの設定方法。現在、私は、あなたは、Appleがついにそのの世話をしたSWIFT 3.0でのシングルトンクラスの作成方法
#pragma mark Singleton
static ModelManager* _instance = nil;
+ (ModelManager *) sharedInstance {
@synchronized([ModelManager class]){
if (!_instance) {
_instance = [[self alloc] init];
}
return _instance;
}
return nil;
}
+ (id)alloc {
@synchronized([ModelManager class]){
NSAssert(_instance == nil, @"Attempted to allocate a second instance of a singleton.");
_instance = [super alloc];
return _instance;
}
return nil;
}
+ (id)allocWithZone:(NSZone *)zone {
@synchronized([CTEModelManager class]) {
NSAssert(_instance == nil, @"Attempted to allocate a second instance of a singleton.");
_instance= [super allocWithZone:zone];
return _instance; // assignment and return on first allocation
}
return nil; //on subsequent allocation attempts return nil
}
- (id)init {
self = [super init];
if (self != nil) {
}
return self;
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
[Cocoa Design Patternを採用する]セクションにも「Singleton」セクションがあります(https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html#//apple_ref/doc/uid/TP40014216-CH7-ID6)。 –