iOS 写好一个单例

258 阅读1分钟

#pragma mark - 单例相关 -----begin---

/* 创建静态对象 防止外部访问 */

static RFGJQH_OptionalManager *_manager;

/** 重写初始化方法 */

+(instancetype)allocWithZone:(struct _NSZone *)zone {
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (_manager == nil) {
            _manager = [super allocWithZone:zone];
            
            [_manager single_dfsbfd:@"daslkl" dagqwg:@(arc4random() % 457)];
            
            [_manager favArray];
        }
    });
    return _manager;
}

/** 初始化单例

@return 管理中心单例 */

+ (instancetype)manager
{
    return [[self alloc]init];;
}

/** 重写copyWithZone */

-(id)copyWithZone:(NSZone *)zone
{
    return _manager;
}

/** 重写mutableCopyWithZone */

-(id)mutableCopyWithZone:(NSZone *)zone
{
    return _manager;
}