1.xcode5和xcode7區(qū)別?
1.xcode7沒有Frameworks文件夾,xcode7內(nèi)部會自動幫你導(dǎo)入一些常見的框架.
2.xcode7多了LaunchScreen.xib,LaunchScreen.xib設(shè)置啟動界面,而且可以確定模擬器或者真機的真實尺寸,如果沒有設(shè)置,默認(rèn)4s的尺寸(320,480)
3.xcode7沒有pch文件
4.xcode5當(dāng)中也有info.plist,只不過它的名字很長.是工程的名稱.
2.pch文件原理?
把pch里面的所有內(nèi)容導(dǎo)入到每個文件中去
3.UIApplication常見功能?
1.設(shè)置應(yīng)用提醒數(shù)字
2.設(shè)置連網(wǎng)狀態(tài)
3.設(shè)置狀態(tài)欄
4.跳轉(zhuǎn)網(wǎng)頁
4.程序完整啟動流程?
1.執(zhí)行Main
2.執(zhí)行UIApplicationMain函數(shù).
3.創(chuàng)建UIApplication對象,并設(shè)置UIApplicationMain對象的代理.
UIApplication的第三個參數(shù)就是UIApplication的名稱,如果指定為nil,它會默認(rèn)為UIApplication.
UIApplication的第四個參數(shù)為UIApplication的代理.
4.開啟一個主運行循環(huán).保證應(yīng)用程序不退出.
5.加載info.plist.加載配置文件.判斷一下info.plist文件當(dāng)中有沒有Main storyboard file base name
里面有沒有指定storyboard文件,如果有就去加載info.plist文件,如果沒有,那么應(yīng)用程序加載完畢.
5.UIWindow是什么?
UIWindow是一種特殊的UIView,通常在一個app中至少有一個UIWindow
iOS程序啟動完畢后塔淤,創(chuàng)建的第一個視圖控件就是UIWindow摘昌,接著創(chuàng)建控制器的view,
最后將控制器的view添加到UIWindow上高蜂,于是控制器的view就顯示在屏幕上了
一個iOS程序之所以能顯示到屏幕上聪黎,完全是因為它有UIWindow
6.手動創(chuàng)建窗口的步驟?
1.創(chuàng)建窗口,要有窗口顯示,必須要有強引用.窗口也是控件,要想展示出來.必須得要有尺寸.
2.創(chuàng)建控制器
3.設(shè)置控制器為窗口的根控制器
4.顯示窗口
7.makeKeyAndVisible做了哪些事情?
1.讓窗口成為顯示狀態(tài).
2.把根控制器的View添加到窗口上面.
3.把當(dāng)前窗口設(shè)置成應(yīng)用程序的主窗口
8.如何從從StoryBoard加載控制器?
9.initWithNibName的加載過程?
1.如果沒有指定名稱.指定為nil,那么它就會去先加載跟它相同名稱的Xib.
2.如果沒有跟它相同名稱的Xib,那么它就會再去加載跟它相同名稱去點Controller的名字的Xib.
3.控制器的init方法會調(diào)用initWithNibName:方法.
10.LoadView 作用以及使用LoadView的注意點?
控制器調(diào)用loadView方法創(chuàng)建控制器的view.
它的默認(rèn)做法是:
1.先去判斷當(dāng)前控制器是不是從StoryBoard當(dāng)中加載的,如果是,那么它就會從StoryBoard當(dāng)中加載控制器的View.
2.如果不是從StoryBoard當(dāng)中加載的, 那么它還會判斷是不是從Xib當(dāng)中創(chuàng)建的控制器.
如果是,那么它就會從xib加載控制器的View.
3.如果也不是從Xib加載的控制器.那么它就會創(chuàng)建一個空的UIView.設(shè)為當(dāng)前控制器的View.
注意點:
1.一旦重寫了loadView,表示需要自己創(chuàng)建控制器的View.
2.如果控制器的View還沒有賦值,就不能調(diào)用控制器View的get方法.會造成死循環(huán).
因為控制器View的get方法底層會調(diào)用loadView方法.