iOS的單例模式有兩種官方寫(xiě)法,如下:
(1)不使用GCD
#import "ServiceManager.h"static ServiceManager *defaultManager;@implementation ServiceManager+(ServiceManager *)defaultManager{ if(!defaultManager) defaultManager=[[self allocWithZone:NULL] init]; return defaultManager;}@end(2)使用GCD
#import "ServiceManager.h"@implementation ServiceManager+(ServiceManager *)sharedManager{ static dispatch_once_t predicate; static ServiceManager * sharedManager; dispatch_once(&predicate, ^{ sharedManager=[[ServiceManager alloc] init]; }); return sharedManager;}@enddispatch_once這個(gè)函數(shù),它可以保證整個(gè)應(yīng)用程序生命周期中某段代碼只被執(zhí)行一次!
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注