使用dispatch_once创建单例

        void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);

        该函数接收一个dispatch_once_t的指针变量用于检查该代码块是否被调用过;它还接收一个希望在应用的生命周期内仅被调度一次的代码块。

        dispatch_once不仅意味着代码仅会被运行一次,而且还是线程安全的。

        使用方式:

+ (id)sharedManager{

    static dispatch_once_t oncePredicate;

    dispatch_once(&oncePredicate, ^{

        _defaultManager = [[super allocWithZone:NULL] init];

    });

    return 

_defaultManager;

}



你可能感兴趣的:(单例,dispatch_once)