UIApplication

UIApplication

  • 是一個應(yīng)用界別的單例對象,獲取此單例對象的方法是
UIapplication *app = [UIApplication shareApplication];
  • 一般涌來做一些應(yīng)用界別的操作:app的提醒狂辛润,聯(lián)網(wǎng)狀態(tài),打開網(wǎng)頁,控制狀態(tài)欄外永。(大多為對象方法)
  • 查找設(shè)置一些功能找方法,進(jìn)行一些事件找代理

UIApplation 的delegate

  • AppDelegate.m
// 學(xué)習(xí)代理方法拧咳,只需要知道這個什么時候調(diào)用伯顶,這個方法可以用來干嘛
// 程序啟動完成的時候調(diào)用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSLog(@"%s",__func__);
return YES;
}
// 當(dāng)app失去焦點(diǎn)的時候調(diào)用
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"%s",__func__);
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
// app進(jìn)入后臺的時候調(diào)用
// app忽然打斷的時候,在這里保存一些需要用到的數(shù)據(jù)
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"%s",__func__);
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
// app進(jìn)入即將前臺
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"%s",__func__);
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
// 當(dāng)app獲取到焦點(diǎn)的時候調(diào)用骆膝,意味著app可以與用戶交互
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"%s",__func__);
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
// app被關(guān)閉的時候調(diào)用
- (void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"%s",__func__);
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
// app接收到內(nèi)存警告的時候調(diào)用
// 清空圖片的緩存
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"%s",__func__);
}

程序啟動原理

// main -> UIApplicationMain
/*
UIApplicationMain
1.創(chuàng)建UIApplication
2.創(chuàng)建UIApplicationDelegate祭衩,并且成為UIApplication代理
3.開啟主運(yùn)行循環(huán),保持程序一直在運(yùn)行
4.加載info.plist,判斷有沒有指定main.stroyboard阅签,指定了就加載
加載main.stroyboard做的事情
1.創(chuàng)建窗口
2.加載main.storyboard,并且加載main.storyboard指定的控制器
3.把新創(chuàng)建的控制器作為窗口的跟控制器掐暮,讓窗口顯示出來
*/
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

UIWindow

  • UIWindow的創(chuàng)建(模擬main storyboard加載過程)
// 程序啟動完成的時候
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 1.創(chuàng)建窗口,注意窗口必須要有尺寸,尺寸跟屏幕一樣大的尺寸,窗口不要被釋放 appDelegate.h中有強(qiáng)引用的 window政钟,所以使用self.window劫乱,以此保證創(chuàng)建的window不會被銷毀
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];
// 2.創(chuàng)建窗口的跟控制器
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor yellowColor];
[vc.view addSubview:[UIButton buttonWithType:UIButtonTypeContactAdd]];
// 如果設(shè)置窗口的跟控制器,默認(rèn)就會把控制器的view添加到窗口上
// 設(shè)置窗口的跟控制器锥涕,默認(rèn)就有旋轉(zhuǎn)功能
self.window.rootViewController = vc;
// [self.window addSubview:vc.view];
// 3.顯示窗口
[self.window makeKeyAndVisible];
return YES;
}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狭吼,隨后出現(xiàn)的幾起案子层坠,更是在濱河造成了極大的恐慌,老刑警劉巖刁笙,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件破花,死亡現(xiàn)場離奇詭異,居然都是意外死亡疲吸,警方通過查閱死者的電腦和手機(jī)座每,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摘悴,“玉大人峭梳,你說我怎么就攤上這事□逵鳎” “怎么了葱椭?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長口四。 經(jīng)常有香客問我孵运,道長,這世上最難降的妖魔是什么蔓彩? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任治笨,我火速辦了婚禮驳概,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旷赖。我一直安慰自己顺又,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布杠愧。 她就那樣靜靜地躺著待榔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪流济。 梳的紋絲不亂的頭發(fā)上锐锣,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機(jī)與錄音绳瘟,去河邊找鬼雕憔。 笑死,一個胖子當(dāng)著我的面吹牛糖声,可吹牛的內(nèi)容都是我干的斤彼。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蘸泻,長吁一口氣:“原來是場噩夢啊……” “哼琉苇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起悦施,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤并扇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抡诞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穷蛹,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年昼汗,在試婚紗的時候發(fā)現(xiàn)自己被綠了肴熏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡顷窒,死狀恐怖蛙吏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鞋吉,我是刑警寧澤出刷,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站坯辩,受9級特大地震影響馁龟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漆魔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一坷檩、第九天 我趴在偏房一處隱蔽的房頂上張望却音。 院中可真熱鬧,春花似錦矢炼、人聲如沸系瓢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夷陋。三九已至,卻和暖如春胰锌,著一層夾襖步出監(jiān)牢的瞬間骗绕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工资昧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酬土,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓格带,卻偏偏與公主長得像撤缴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叽唱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

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

  • UIApplication深入研究 很多時候屈呕,我們不需要關(guān)心這個類,我們很少繼承這個類棺亭,偶爾會調(diào)用這個類的api來...
    誰的青春不迷茫閱讀 1,801評論 1 7
  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的閱讀 13,493評論 5 6
  • // 1.應(yīng)用程序啟動完成虎眨,會調(diào)用此方法,啟動之后侦铜,將不再調(diào)用此方法! //如果因?yàn)閮?nèi)存等原因钟鸵,應(yīng)用程序被操作系統(tǒng)...
    143db5b5572a閱讀 160評論 0 0
  • 部分(15) 目錄(?)[+] UIApplication的核心作用是提供了iOS程序運(yùn)行期間的控制和協(xié)作工作钉稍。每...
    wzf_taker閱讀 336評論 0 0
  • 美團(tuán)金融孵化前端團(tuán)隊(duì)又開始招人了!我們的團(tuán)隊(duì)有多靠譜棺耍?目前來過這里的小伙伴就沒有想走的贡未!美團(tuán)金融孵化目前正在經(jīng)歷爆...
    乖小鬼閱讀 646評論 1 1