单例的创建

2017-04-08  本文已影响7人  EdenChow
声明一个全局对象
@implementation UserEntity
        static id _instance;
@end
一个类方法
+ (instancetype)shareInstance {

    static dispatch_once_t onceToken;
    
    dispatch_once(&onceToken, ^{
        
        _instance = [[self alloc] init];
    });
    
    return _instance;
}
使用 alloc int 或者 new的方式创建对象
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
    
    static dispatch_once_t onceToken;
    
    dispatch_once(&onceToken, ^{
        
        _instance = [super allocWithZone:zone];
    });
    
    return _instance;
}
上一篇 下一篇

猜你喜欢

热点阅读