- 單例模式的作用
- 可以保證在程序運行過程,一個類只有一個實例,而且該實例易于供外界訪問
- 從而方便地控制了實例個數,并節約系統資源
- 單例模式的使用場合
- 在整個應用程序中,共享一份資源(這份資源只需要創建初始化1次)
static id _instance;
- 重寫allocWithZone:方法,在這里創建唯一的實例(注意線程安全)
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [super allocWithZone:zone];
});
return _instance;
}
+ (instancetype)sharedInstance
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[self alloc] init];
});
return _instance;
}
- (id)copyWithZone:(struct _NSZone *)zone
{
return _instance;
}
- MRC中,單例模式的實現 整體和ARC差不多,但是要重寫release方法,retain方法,retainCount方法
-(oneway void)release
{
}
-(instancetype)retain
{
return _instance;
}
// 習慣
-(NSUInteger)retainCount
{
return MAXFLOAT;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。