單列里面添加 NSMutableArray 的時(shí)候,防止多個(gè)地方對(duì)它同時(shí)便利和修改的話,需要加原子屬性。并且用strong,并且寫(xiě)一個(gè)遍歷和修改的方法。加上鎖。? Lock? UnLock
第一、基本概念
單例模式是一種常用的軟件設(shè)計(jì)模式。在它的核心結(jié)構(gòu)中只包含一個(gè)被稱為單例類的特殊類。通過(guò)單例模式可以保證系統(tǒng)中一個(gè)類只有一個(gè)實(shí)例而且該實(shí)例易于外界訪問(wèn)。
第二、在IOS中使用單例模式的情況
1.如果說(shuō)創(chuàng)建一個(gè)對(duì)象會(huì)耗費(fèi)很多系統(tǒng)資源,那么此時(shí)采用單例模式,因?yàn)橹恍枰粋€(gè)實(shí)例,會(huì)節(jié)省alloc的時(shí)間
2.在IOS開(kāi)發(fā)中,如果很多模塊都要使用同一個(gè)變量,此時(shí)如果把該變量放入單例類,則所有訪問(wèn)該變量的調(diào)用變得很容易,否則,只能通過(guò)一個(gè)模塊傳遞給另外一個(gè)模塊,這樣增加了風(fēng)險(xiǎn)和復(fù)雜度
第三、創(chuàng)建單例模式的基本步驟
1.聲明一個(gè)單例對(duì)象的靜態(tài)實(shí)例,并初始化為nil
2.聲明一個(gè)類的工廠方法,生成一個(gè)該類的實(shí)例,并且只會(huì)生成一個(gè)
3.覆蓋allcoWithZone方法,確保用戶在alloc 時(shí),不會(huì)產(chǎn)生一個(gè)多余的對(duì)象
4.實(shí)現(xiàn)NSCopying協(xié)議,覆蓋release,autorelease,retain,retainCount方法,以確保只有一個(gè)實(shí)例化對(duì)象
5.在多線程的環(huán)境中,注意使用@synchronized關(guān)鍵字