GCD單例模式 13

? 單例模式的作用

可以保證程序運(yùn)行過(guò)程,一個(gè)類只用一個(gè)實(shí)例,而且該實(shí)例易于供外界訪問(wèn)

從而方便控制了實(shí)例個(gè)數(shù),并節(jié)約系統(tǒng)資源

單例模式使用場(chǎng)合

在整個(gè)應(yīng)用程序中,共享一份資源(這份資源只需要?jiǎng)?chuàng)建初始化1次)

代碼實(shí)現(xiàn)

創(chuàng)建一個(gè)類繼承與NSObject

類名為XMGPerson

-(void)viewDidLoad{

[super viewDidLoad];

XMGPerson *person1 = [[XMGPerson alloc]init];

person1.name = @"jack";

XMGPerson *person2 = [[XMGPerson alloc]init];

XMGPerson *person3 = [[XMGPerson alloc]init];

XMGPerson *person4 = [[XMGPerson alloc]init];

NSLog(@"%p %p %p %p",person1,person2,person3,person4);

NSLog(@"%@----------%@",[XMGPerson?sharedPerson],[XMGPerson sharedPerson]);

XMGPerson *p = [XMGPerson sharedPerson];

XMGPerson *p2? = [p copy];

NSLog(@"%p %p",p,p2);

}


在XMGPerson.m文件中

#import"XMGPerson"

@interface XMGPerson()<NSCopying>

@end

@implementation XMGPerson

static XMGPerson *person;

//外面調(diào)用alloc的時(shí)候保證是同一個(gè)對(duì)象

+(instancetype)allocWithZone:(struct _NSZone *)zone{

static dispatch_once_t onceToken;

dispatch_once(&onceToken,^{

person =?[super allocWithZone:zone];

});

return person

}

+(instancetype)sharedPerson{

static dispach_once_t onceToken;

dispatch_once(&onceToken,^{

person = [[self alloc]init];

});

return person;

}

-(id)copyWithZone:(NSZone *)zone{

return person;

}



在XMGPerson.h文件中

@property (nonatomic,strong) NSString *name;

+(instancetype )sharedPerson;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 線程間的通信 從子線程回到主線程 延時(shí)執(zhí)行 iOS常見(jiàn)的延時(shí)執(zhí)行有兩種方式p 調(diào)用NSObject的方法 p 使用...
    一抹月光3053閱讀 814評(píng)論 1 12
  • 單例模式的作用是用來(lái)解決一個(gè)應(yīng)用中某個(gè)類只有唯一一個(gè)對(duì)象的問(wèn)題。單例類在iOS開(kāi)發(fā)中是非常重要的,在系統(tǒng)提供個(gè)類中...
    趙亦晨閱讀 488評(píng)論 0 1
  • 一、GCD兩個(gè)核心概念: 任務(wù):執(zhí)行什么操作; 隊(duì)列:用來(lái)存放任務(wù)。 二、GCD使用的兩個(gè)步驟: 定制任務(wù):確定想...
    magic_pill閱讀 154評(píng)論 0 0
  • 時(shí)光無(wú)聲無(wú)息悄悄地伴我前行,在過(guò)往的歲月里,我已習(xí)慣了自己的生活方式,無(wú)端的擔(dān)憂明天,抱怨著不盡如意的今天,扼腕嘆...
    東鄰碣石閱讀 417評(píng)論 0 2
  • 對(duì)于自動(dòng)化系統(tǒng)集成商來(lái)說(shuō),項(xiàng)目方案的重要性不言而喻。如何向客戶介紹自己的方案?方案應(yīng)該包括哪些內(nèi)容?有什么現(xiàn)成的經(jīng)...
    發(fā)那科機(jī)器人小吳閱讀 7,485評(píng)論 2 5

友情鏈接更多精彩內(nèi)容