单例的作用
在整个项目中,这个类的对象只能被初始化一次。可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值。
UIApplication、NSUserDefaults等都是IOS中的系统单例。
单例的写法
单例的写法常用的有两种方式:
方式1、不考虑线程
//#import "Single.h"
static Single *defaultmanager = nil;
+ (Single *)defaultManager {
if (!defaultmanager){
SingleCase = [[self alloc] init];
return manager;
}
}
方式2、考虑线程安全
//#import "Single"
+ (Single *)sharedManager
{
static Single *ManagerInstance = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
ManagerInstance = [[self alloc] init];
});
return ManagerInstance;
}