版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Category類別的使用北京電子科技職業(yè)學(xué)院Category類別簡介12Category的實例目標(biāo)3Category的優(yōu)點與缺點Category類別簡介什么是Category類別(Category)是一種為現(xiàn)有的類添加新方法的方式利用Objective-C的動態(tài)運行時分配機(jī)制,Category提供了一種比繼承(inheritance)更為簡潔的方法來對class進(jìn)行擴(kuò)展,無需創(chuàng)建對象類的子類就能為現(xiàn)有的類添加新方法,可以為任何已經(jīng)存在的class添加方法,包括那些沒有源代碼的類(如某些框架類)。例如我們可以為NSnumber等類添加新的方法,雖然我們不知道這個類具體定義的代碼是什么。Category的實例單例模式的應(yīng)用:iOS系統(tǒng)中提供的單例類UIApplication(應(yīng)用程序?qū)嵗?NSNotificationCenter(消息中心類)NSFileManager(文件管理類)NSUserDefaults(應(yīng)用程序設(shè)置)NSURLCache(請求緩存類)NSHTTPCookieStorage(應(yīng)用程序cookies池)這些單例在系統(tǒng)被初始時被實例化,之后用戶是不能將其再次實例化的,如下例,當(dāng)你想實例化一個單例類的結(jié)果就是會引起系統(tǒng)的崩潰單例模式簡介單例的特點不能被外部實例化,只能自己內(nèi)部實例化自己單例生成的對象是獨一無二的單例模式簡介單例模式的結(jié)構(gòu):單例模式簡介單例模式的優(yōu)點:節(jié)約系統(tǒng)資源,保證系統(tǒng)中該類只有一個實例,只占有一塊內(nèi)存資源單例模式的缺點:因為是靜態(tài)的實例,因此內(nèi)存的釋放只在系統(tǒng)運行結(jié)束后。其次,同于類是靜態(tài)的,所以不能用于擴(kuò)展,不適用于繼承等。iOS中單例模式的實現(xiàn)iOS中單例模式的實現(xiàn)方法常規(guī)方法互斥鎖GCDiOS中單例模式的實現(xiàn)——常規(guī)方法.h文件@interfaceSingleton:NSObject//類方法+(Singleton*)getInstance;@end.m文件@implementationSingletonstaticSingleton*instance=nil;+(Singleton*)getInstance{if(instance==nil){instance=[[Singletonalloc]init];//調(diào)用自己改寫的”私有構(gòu)造函數(shù)“}returninstance;}+(id)allocWithZone:(struct_NSZone*)zone{if(instance==nil){instance=[superallocWithZone:zone];}returninstance;}@endiOS中單例模式的實現(xiàn)——加互斥鎖.h文件@interfaceSingleton:NSObject//類方法+(Singleton*)getInstance;@end.m文件@implementationSingletonstaticSingleton*instance=nil;+(Singleton*)getInstance{
@synchronized(self){
if(instance==nil){instance=[[Singletonalloc]init}}returninstance;}+(id)allocWithZone:(struct_NSZone*)zone{if(instance==nil){instance=[superallocWithZone:zone];}returninstance;}@endiOS中單例模式的實現(xiàn)——gcd.h文件@interfaceSingleton:NSObject//類方法+(Singleton*)getInstance;@end.m文件//使用gcd中的dispatch_once()方法,函數(shù)的第二個參數(shù)是一個代碼段,告訴gcd我們要做的事情是什么+(Singleton*)getInstance{staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{instance=[[selfalloc]init];});returninstance;}//使用gcd的dispatch_once()方法,在傳入的代碼段中,調(diào)用父類的內(nèi)存申請函數(shù)+(id)allocWithZone:(struct_NSZone*)zone{staticdispatch_once_tonceToken;dispatch_once(&o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版貨車司機(jī)雇傭勞動合同
- 2024汽車制造商關(guān)于新型汽車零部件采購的合同
- 夜間交通指示照明合同(2篇)
- 2024橋梁工程橋梁檢測與評估承包合同樣本2篇
- 2024年雞蛋供貨商協(xié)議
- 數(shù)字健康服務(wù)推廣協(xié)議
- 土地居間合同1
- 16-2《登泰山記》(說課稿)高一語文同步高效課堂(統(tǒng)編版 必修上冊)
- 2《觀察蝸牛的反應(yīng)》說課稿-2023-2024學(xué)年科學(xué)二年級上冊湘科版
- 能源行業(yè)設(shè)備采購合同
- 《城市環(huán)境污染》課件
- 廣西崇左憑祥海關(guān)緝私分局緝私輔警招聘筆試真題2023
- 食材質(zhì)量控制方案
- CNC技理考(含答案)
- 員工互評表(含指標(biāo))
- 小收納大世界-整li與收納(黑龍江幼兒師范高等??茖W(xué)校)知到智慧樹答案
- 河南省鄭州市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試題含解析
- 2024-2025學(xué)年外研版七年級英語下冊 Unit1單詞背誦(不帶音標(biāo))
- 期末試題-2024-2025學(xué)年人教PEP版英語六年級上冊 (含答案)
- 孕產(chǎn)婦高危五色管理(醫(yī)學(xué)講座培訓(xùn)課件)
- 幼兒體適能培訓(xùn)
評論
0/150
提交評論