IOS之單例模式
阿新 • • 發佈:2019-02-12
IOS單例模式
1 普通單例
static HAObjectStudy *defaultStudy = nil;
+(HAObjectStudy *)getInstance
{
@synchronized(self){
if(defaultStudy == nil){
defaultStudy = [HAObjectStudy new];
NSLog(@"defaultStudy 被getInstance建立");
}
return defaultStudy;
}
}
通用方式,自己控制執行緒安全
2 initialize單例
static HAObjectStudy *defaultStudy = nil; + (void)initialize { [super initialize]; NSLog(@"initialize --- 初始化,類在建立的時候進行初始化要進行的操作"); if (defaultStudy == nil) { defaultStudy = [HAObjectStudy new]; NSLog(@"defaultStudy 被initialize建立"); } } +(HAObjectStudy *)getInitializeInstance { return defaultStudy; }
藉助Object-c的類初始化機制,不用控制執行緒安全
說明:程式的類包括載入,連線,初始化過程,當類第一次使用的時候執行唯一一次initialize初始化,所以可取巧用來支援單例模式。