4种创建方式。
//UIApplication NSUserDefault NSNotificationCenter....
//单例类:在程序运行过程中只创建一个对象
//存储数据,封装方法
//+ (id) shareSingletonClass{
//
// //互斥锁防止多个线程在同一时间访问同一块资源
// @synchronized(self) {
// if (!singletonClass) {
// singletonClass = [[SingletonClass alloc]init];
// }
// }
// return singletonClass;
//}
+ (id) shareSingletonClass{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//只执行一次
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;
}