4種創(chuàng)建方式。
//UIApplication NSUserDefault NSNotificationCenter....
//單例類:在程序運行過程中只創(chuàng)建一個對象
//存儲數(shù)據(jù),封裝方法
//+ (id) shareSingletonClass{
//
// ???//互斥鎖防止多個線程在同一時間訪問同一塊資源
// ???@synchronized(self) {
// ???????if (!singletonClass) {
// ???????????singletonClass = [[SingletonClass alloc]init];
// ???????}
// ???}
// ???return singletonClass;
//}
+ (id) shareSingletonClass{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//只執(zhí)行一次
if(!singletonClass) {
singletonClass = [[SingletonClass alloc] init];
}
});
return singletonClass;
}
//重寫父類方法
+ (id) alloc{
if(!singletonClass) {
return[super alloc];
}
return singletonClass;
}
+ (id)allocWithZone:(struct_NSZone*)zone{
if(!singletonClass) {
return [super allocWithZone:zone];
}
return singletonClass;
}