iOS面试题那些事

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方法.

你可能感兴趣的:(iOS面试题那些事)