這個(gè)系列主要寫(xiě)一些平時(shí)ios開(kāi)發(fā)和學(xué)習(xí)過(guò)程中所記錄的問(wèn)題嘴拢、隨筆和解決方法,我會(huì)盡量用更多的截圖或者gif圖來(lái)還原我的開(kāi)發(fā)現(xiàn)場(chǎng)寂纪,在執(zhí)行個(gè)人備忘錄功能的同時(shí)希望對(duì)你有所幫助席吴。
1.UIApplication概念
- UIApplication對(duì)象是應(yīng)用程序的象征
- 每一個(gè)應(yīng)用都有自己的UIApplication對(duì)象,而且是單例的
- 通過(guò)[UIApplication sharedApplication】可以獲得這個(gè)單例對(duì)象
- 一個(gè)ios程序啟動(dòng)后創(chuàng)建的第一個(gè)對(duì)象就是UIApplication對(duì)象
2.UIApplication的常用屬性
- 設(shè)置應(yīng)用程序圖標(biāo)右上角的紅色提醒數(shù)字
@property(nonatomic)NSInteger applicationIconBadgeNumber;
- 設(shè)置物聯(lián)網(wǎng)指示器的可見(jiàn)性
@property(nonatomic,getter= isNetworkActivityIndicatorVisible)BOOL networkActivityIndicatorVisible;
3.UIApplication創(chuàng)建對(duì)象的特點(diǎn)
- 程序一運(yùn)行就創(chuàng)建對(duì)象
- 創(chuàng)建的對(duì)象只有一個(gè)
- 只要調(diào)用alloc程序就崩潰
- 遵循單例模式
UIApplication *app1 = [UIApplication sharedApplication];
UIApplication *app2 = [UIApplication sharedApplication];
NSLog(@"%p-----%p",app1,app2);//輸出的地址一樣
- 調(diào)用alloc崩潰
4.利用UIApplication特點(diǎn)制作單例對(duì)象
- 程序一運(yùn)行就創(chuàng)建對(duì)象
static Topus *_instance;? ? //當(dāng)類(lèi)被加載到內(nèi)存當(dāng)中時(shí)調(diào)用load
+(void)load{
? ? NSLog(@"%s",__func__);
? ? _instance = [[Topus alloc]init];
}
- 創(chuàng)建的對(duì)象只有一個(gè)
+(instancetype)sharedTopus{? ? return _instance;
}
只要調(diào)用alloc程序就崩潰
Topus *t1 = [Topus sharedTopus];
Topus *t2 = [Topus sharedTopus];
NSLog(@"%p-----%p",t1,t2);//地址一樣
Topus *t3 = [[Topus alloc]init];//崩潰