1.xcode5和xcode7区别?
1.xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入一些常见的框架.
2.xcode7多了LaunchScreen.xib,LaunchScreen.xib设置启动界面,而且可以确定模拟器或者真机的真实尺寸,如果没有设置,默认4s的尺寸(320,480)
3.xcode7没有pch文件
4.xcode5当中也有info.plist,只不过它的名字很长.是工程的名称.
2.pch文件原理?
把pch里面的所有内容导入到每个文件中去
3.UIApplication常见功能?
1.设置应用提醒数字
2.设置连网状态
3.设置状态栏
4.跳转网页
4.程序完整启动流程?
1.执行Main
2.执行UIApplicationMain函数.
3.创建UIApplication对象,并设置UIApplicationMain对象的代理.
UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认为UIApplication.
UIApplication的第四个参数为UIApplication的代理.
4.开启一个主运行循环.保证应用程序不退出.
5.加载info.plist.加载配置文件.判断一下info.plist文件当中有没有Main storyboard file base name
里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕.
5.UIWindow是什么?
UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,
最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了
一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow
6.手动创建窗口的步骤?
1.创建窗口,要有窗口显示,必须要有强引用.窗口也是控件,要想展示出来.必须得要有尺寸.
2.创建控制器
3.设置控制器为窗口的根控制器
4.显示窗口
7.makeKeyAndVisible做了哪些事情?
1.让窗口成为显示状态.
2.把根控制器的View添加到窗口上面.
3.把当前窗口设置成应用程序的主窗口
8.如何从从StoryBoard加载控制器?
9.initWithNibName的加载过程?
1.如果没有指定名称.指定为nil,那么它就会去先加载跟它相同名称的Xib.
2.如果没有跟它相同名称的Xib,那么它就会再去加载跟它相同名称去点Controller的名字的Xib.
3.控制器的init方法会调用initWithNibName:方法.
10.LoadView 作用以及使用LoadView的注意点?
控制器调用loadView方法创建控制器的view.
它的默认做法是:
1.先去判断当前控制器是不是从StoryBoard当中加载的,如果是,那么它就会从StoryBoard当中加载控制器的View.
2.如果不是从StoryBoard当中加载的, 那么它还会判断是不是从Xib当中创建的控制器.
如果是,那么它就会从xib加载控制器的View.
3.如果也不是从Xib加载的控制器.那么它就会创建一个空的UIView.设为当前控制器的View.
注意点:
1.一旦重写了loadView,表示需要自己创建控制器的View.
2.如果控制器的View还没有赋值,就不能调用控制器View的get方法.会造成死循环.
因为控制器View的get方法底层会调用loadView方法.