单例类

//1:.m中创建一个全局的静态的SingleClass对象的指针,初始值nil
static SingleClass *single = nil;


@implementation SingleClass

// 该方法用来创建一个人单例类
+ (id)sharedSingleClass{
    //2:调用GCD的once方法//能够保证{}代码段整个程序运行过程中只会被执行一次//代码快中的代码只会被第一次调用sharedSingleClass方法被执行,从第二次开始调用时代码块中的代码不会被执行
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{//block代码块,代码段
        //3:实例化SingleClass对象的指针
        single = [[SingleClass alloc] init];
    });
    return single;//只有第一次调用时进行初始化,从第二次开始都是直接返回第一次初始化的对象的首地址
}


原文地址:https://www.cnblogs.com/zdong/p/4467052.html