单例类

2016-10-26  本文已影响12人  nothing_c

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;

}

上一篇 下一篇

猜你喜欢

热点阅读