- 單例模式的作用
- 可以保證在程序運行過程队他,一個類只有一個實例徒役,而且該實例易于供外界訪問
- 從而方便地控制了實例個數(shù),并節(jié)約系統(tǒng)資源
- 單例模式的使用場合
- 在整個應用程序中于游,共享一份資源(這份資源只需要創(chuàng)建初始化1次)
static id _instance;
- 重寫allocWithZone:方法,在這里創(chuàng)建唯一的實例(注意線程安全)
+ (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中贰剥,單例模式的實現(xiàn) 整體和ARC差不多倾剿,但是要重寫release方法,retain方法蚌成,retainCount方法
-(oneway void)release
{
}
-(instancetype)retain
{
return _instance;
}
// 習慣
-(NSUInteger)retainCount
{
return MAXFLOAT;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者