關(guān)于UIApplication的介紹
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
UIApplication
什么是UIApplication?
UIApplication對(duì)象是應(yīng)用程序的象征。每一個(gè)應(yīng)用都有自己的UIApplication對(duì)象,這個(gè)對(duì)象是系統(tǒng)自動(dòng)幫我們創(chuàng)建的, 它是一個(gè)單例對(duì)象。一個(gè)iOS程序啟動(dòng)后創(chuàng)建的第一個(gè)對(duì)象就是UIApplication對(duì)象我們只能通過[UIApplication sharedApplication]獲得這個(gè)單例對(duì)象,不能夠手動(dòng)去創(chuàng)建它。
UIApplication作用?
利用UIApplication對(duì)象,能進(jìn)行一些應(yīng)用級(jí)別的操作。可以設(shè)置應(yīng)用程序圖標(biāo)右上角的紅色提醒數(shù)字設(shè)置聯(lián)網(wǎng)指示器的可見性可以設(shè)置應(yīng)用程序的狀態(tài)欄,進(jìn)行應(yīng)用之間的跳轉(zhuǎn)。
模仿UIApplication單例。
要求:程序一啟動(dòng)就創(chuàng)建創(chuàng)建對(duì)象。創(chuàng)建的對(duì)象只能通過share的方式獲取對(duì)象。不能夠進(jìn)行alloc 操作,當(dāng)執(zhí)行alloc時(shí), 程序發(fā)生崩潰
1.程序一啟動(dòng)的時(shí)候就創(chuàng)建對(duì)象。
當(dāng)類被加載到內(nèi)存的時(shí)候就會(huì)調(diào)用load的方法,它會(huì)比main方法優(yōu)先調(diào)用
static Persion *_instance;
+ (void)load{
想要保存創(chuàng)建的對(duì)象, 要用成員屬性,但是現(xiàn)在是類方法, 沒有辦法訪問成員屬性。 所以搞了一個(gè)static的靜態(tài)變量進(jìn)行保存
創(chuàng)建對(duì)象
_instance = [[self alloc] init];
}
2.保證調(diào)用alloc時(shí)會(huì)產(chǎn)生異常, 重寫系統(tǒng)的是alloc方法
+(instancetype)alloc {
當(dāng)調(diào)用alloc方法時(shí),先查看一下_instance有沒有值,如果已經(jīng)有值的話,直接拋出異常。
if(_instance) {
NSException *exception = [NSException exceptionWithName: @“NSInternalInconsistencyException”
reason:
@“There can only be one Persion instance.” userInfo:nil]; 拋出異常
?。踖xception raise];
}
保持系統(tǒng)的做法。
return [super alloc];
}
3.通過share方式獲取對(duì)象
+ (instancetype)sharePersion {
return _instance
}
UIApplication功能
1.設(shè)置應(yīng)用提醒數(shù)字
獲取UIApplication對(duì)象
UIApplication *ap = [UIApplication sharedApplication];
在設(shè)置之前, 要注冊(cè)一個(gè)通知,從ios8之后,都要先注冊(cè)一個(gè)通知對(duì)象。才能夠接收到提醒。 UIUserNotificationSettings *notice =
?。踀IUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
注冊(cè)通知對(duì)象
[ap registerUserNotificationSettings:notice];
設(shè)置提醒數(shù)字
ap.applicationIconBadgeNumber = 20;
設(shè)置提醒數(shù)字為20效果圖
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
