UIApplication的介紹以及底層實(shí)現(xiàn)原理

先說點(diǎn)題外話:

UIApplication是應(yīng)用程序系統(tǒng)的單例對(duì)象,單例到底是什么呢?下面是我的解釋:
單例在應(yīng)用程序只有一份內(nèi)存,并不會(huì)分配很多的內(nèi)存.
前面的最初我也解釋了單例

一.先講講UIApplication能做些什么??

  • 1.設(shè)置應(yīng)用程序圖標(biāo)的提醒數(shù)字

代碼如下
有必要說一下UIApplication使用單例創(chuàng)建的,但里的常見一般是share+類名

//1.獲取應(yīng)用程序的對(duì)象
UIApplication *app = [UIApplication sharedApplication];
//2.設(shè)置應(yīng)用程序圖標(biāo)的提醒數(shù)字
app.applicationIconBadgeNumber = 100;
//3.創(chuàng)建通知對(duì)象
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
//4.注冊(cè)用戶新通知
[app registerUserNotificationSettings:setting];
  • 2.設(shè)置聯(lián)網(wǎng)的提示
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
  • 3.設(shè)置狀態(tài)欄

(1).在iOS7之后,狀態(tài)欄默認(rèn)交給控制器來管理了(需要早info.plist里面進(jìn)行設(shè)置:先添加addrow 輸入大寫APP,徐澤最后一個(gè)View controller-based status bar appearance = NO),這樣就不再由控制器來管理狀態(tài)欄了,下面的代碼才能起到效果

還需要在info.plist配置(只有配置了,下面的這句話才能將狀態(tài)欄隱藏)
app.statusBarHidden = YES;

(2).如果想用控制器來控制就用下面的方法

-(BOOL)prefersStatusBarHidden
{
    return YES;
}

(3).手動(dòng)更改iOS狀態(tài)欄的顏色
- (void)setStatusBarBackgroundColor:(UIColor *)color
{
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

      if ([statusBar respondsToSelector:@selector(setBackgroundColor:)])
      {
              statusBar.backgroundColor = color;    
      }
 }
  • 4.打電話,發(fā)短息,打開網(wǎng)頁

    //URL:資源的唯一路徑(唯一的標(biāo)識(shí)符)
    [app openURL:[NSURL URLWithString:@"www.baidu.com.cn"]];
    

二.講講main.m里面UIApplicationMain 底層的實(shí)現(xiàn)

 //1.根據(jù)principalClassName傳遞的類名創(chuàng)建UIApplication對(duì)象
 //2.創(chuàng)建UIApplication代理對(duì)象,給UIApplication 對(duì)象設(shè)置代理
 //3.開啟主運(yùn)行事件循環(huán),處理事件
 //4.加載info.plist,判斷下是否指定main,如果制定了,就會(huì)去加載

     *  @param nil    UIApplication 類名或者子類的名稱  nil == @"UIApplication"
     *  @param class] UIApplication代理的類型的名稱
     *
     *  NSStringFromClass 將類名轉(zhuǎn)化為字符串 == @"AppDelegate"
     *  @return NSStringFromClass :功能1.是為了有提示功能 2.避免輸入錯(cuò)誤

UIApplicationMain(int argc, char *argv[], NSString * __nullable principalClassName, NSString * __nullable delegateClassName);

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

四.最后附上一張圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屹电,隨后出現(xiàn)的幾起案子嘹承,更是在濱河造成了極大的恐慌舆乔,老刑警劉巖彤路,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兵拢,居然都是意外死亡介褥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門曲聂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霹购,“玉大人,你說我怎么就攤上這事朋腋∑敫恚” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵旭咽,是天一觀的道長(zhǎng)贞奋。 經(jīng)常有香客問我,道長(zhǎng)穷绵,這世上最難降的妖魔是什么轿塔? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮仲墨,結(jié)果婚禮上勾缭,老公的妹妹穿的比我還像新娘。我一直安慰自己目养,他們只是感情好俩由,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著癌蚁,像睡著了一般尊浓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上强重,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天庆揩,我揣著相機(jī)與錄音,去河邊找鬼洽洁。 笑死痘系,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饿自。 我是一名探鬼主播汰翠,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼昭雌!你這毒婦竟也來了复唤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤烛卧,失蹤者是張志新(化名)和其女友劉穎佛纫,沒想到半個(gè)月后妓局,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呈宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年好爬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甥啄。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡存炮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜈漓,到底是詐尸還是另有隱情穆桂,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布融虽,位于F島的核電站享完,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏衣形。R本人自食惡果不足惜驼侠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谆吴。 院中可真熱鬧倒源,春花似錦、人聲如沸句狼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腻菇。三九已至胳螟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筹吐,已是汗流浹背糖耸。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丘薛,地道東北人嘉竟。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像洋侨,于是被迫代替她去往敵國和親舍扰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 程序啟動(dòng)原理 掌握 Info.plist和pch文件的作用 UIApplication的常見使用 AppDeleg...
    JonesCxy閱讀 800評(píng)論 0 1
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評(píng)論 25 707
  • iOS-UIApplication詳解 ?建議收藏希坚,用到時(shí)候一查就明白了 xx_cc UIApplication簡(jiǎn)...
    xx_cc閱讀 18,222評(píng)論 15 117
  • 蕭雅出生在一個(gè)偏遠(yuǎn)的山區(qū)边苹,家里住的是茅草房,沒有水田裁僧,都是山上開荒種些玉米个束,平時(shí)穿著補(bǔ)丁衣服慕购,一家人勉勉強(qiáng)強(qiáng)能夠維...
    中華文化傳播排行榜閱讀 429評(píng)論 1 1
  • 這戲不是災(zāi)難片脓钾,那些給人視覺和心理沖擊力極大的災(zāi)難鏡頭只占一小部分售睹,它甚至不是倫理片——大部分時(shí)間里桩警,我們都只是看...
    燕大七閱讀 235評(píng)論 0 0