1.0 苹果官方写法:
1 static AccountManager *DefaultManager = nil; 2 3 + (AccountManager *)defaultManager { 4 if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init]; 5 return DefaultManager; 6 }
2.0 在iOS4之后有了另外一种写法:
1 + (AccountManager *)sharedManager 2 { 3 static AccountManager *sharedAccountManagerInstance = nil; 4 static dispatch_once_t predicate; 5 dispatch_once(&predicate, ^{ 6 sharedAccountManagerInstance = [[self alloc] init]; 7 }); 8 return sharedAccountManagerInstance; 9 }