1.+ 靜態(tài)方法号醉,一般用share
2.創(chuàng)建static 類對象
3.重寫mutableCopy,copy,allocWithZone(類方法),init四個(gè)方法
if(..==nil){
=
創(chuàng)建一個(gè)單例很多辦法舔痕,蘋果官方文檔中的寫法:
static AccountManager?*DefaultManager?=?nil;
+?(AccountManager?*)defaultManager?{
if(!DefaultManager)?
DefaultManager?=?[[self?allocWithZone:NULL]?init];
return DefaultManager;
}
在iOS4之后有了另外一種寫法:
+?(AccountManager?*)sharedManager
{
static AccountManager?*sharedAccountManagerInstance?=?nil;
static dispatch_once_t?predicate;
dispatch_once(&predicate,?^{
sharedAccountManagerInstance?=?[[self?alloc]?init];
});
return sharedAccountManagerInstance;
}
該寫法來自objcolumnist棍现,文中提到验残,該寫法具有以下幾個(gè)特性:
1. 線程安全忱反。
2. 滿足靜態(tài)分析器的要求渤弛。
3. 兼容了ARC