單例的作用
在整個項目中,這個類的對象只能被初始化一次。可以廣泛應用於某些需要全局共享的資源中,比如管理類,引擎類,也可以通過單例來實現傳值。
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;
}