假设有一个AccountManager类,想要在整个应用中访问该类的共享实例,可以这么写
+(AccountManager *)shareManager {
//在这个类方法里面先实例化一个对象,并将其置空;
static AccountManager * sharedAccountManagerInstance = nil;
//利用GCD中的C语言语法,创建一个线程,并且这个线程是只执行一次的线程。
static dispatch_once_t predicate;
//接下来调用一个块语法,就是调用只执行一次的函数,把这个函数放到predicate这个只执行一次的线程里面,然后在这个块里面初始化。
dispatch_once(&predicate,^{sharedAccountManagerInstance = [self alloc] init];});
//返回这个单例。
return shareAccountManagerInstance ;
}
//在任何地方想要共享实例 只需要先引入头文件,然后再在这个类里面如下实例化就行。
AccountManager * accountManager = [AccountManager shareManager];