dispatch_once函数

    该函数就是 dispatch_once:void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);


//创建单例 1通过static修饰类名创建的对象并置空。2在在类方法种开辟线程初始化单例。

static RegisterManager*manager=nil;

+(id)shareManager{


    //1dispath_once()函数将控制提交的代码块在整个应用的生命周期内最多只执行一次,只有第一次提交代码块的时候,该代码块才回获得执行的机会。函数需要传入一个dispatch_once_t 类型的指针本质是long整型。指针用于判断代码块是否执行过。所以创建单例使用该函数非常好。

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        manager=[[RegisterManager alloc]init];

    });

    return manager;


}


你可能感兴趣的:(dispatch_once函数)