一、单例的作用
单例,顾名思义,即是在整个项目中,这个类的对象只能被初始化一次。它的这种特性,可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值。UIApplication、NSUserDefaults等都是IOS中的系统单例。
二、单例的写法
写法一:(不考虑线程)
static SingleCase *manager = nil; + (SingleCase *)defaultManager { if (!manager){ SingleCase = [[self alloc] init]; return manager; } }
写法二:(考虑线程安全)
+ (SingleCase *)sharedManager { static SingleCase *ManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ ManagerInstance = [[self alloc] init]; }); return ManagerInstance; }
可以参照:http://www.jianshu.com/p/7486ebfcd93b