info.plist文件
1.
Bundle name: app名称,项目通常使用英文,app名称显示中文2.
Bundle identifier: app标识符 上传AppStore和推送3.
Bundle versions string, short app版本号
PCH文件
pch作用:
1.存放一些公用的宏
2.存放一些公用的头文件
3.自定义Log
|
|
pch原理:就是把pch文件中的所有内容拷贝到所有文件的头部
注意点:
- pch文件一定要注意做些判断,判断下当前是否是OC文件,如果是就 导入OC的代码
所有的OC文件都会定义__OBJC__这个宏,苹果官方定义
- 和C混编:注意点:判断单下是否是OC文件
|
|
|
|
UIApplication
常识
UIApplication对象是应用程序的象征- 每一个应用都有自己的
UIApplication对象,而且是单例 - 通过
[UIApplication sharedApplication]可以获得这个单例对象 - 一个iOS程序启动后创建的第一个对象就是
UIApplication对象
利用
UIApplication对象,能进行一些应用级别的操作1.应用程序图片的提醒数字
2.联网状态
3.设置状态栏
4.打开资源,电话,网页,发短信
何为单例
1.整个应用程序只有一份内存.
2.重写
alloc方法,只分配一次.3.提供
share方法,获取单例对象.4.使用静态全局变量保存单例对象.
示例代码(模仿系统
UIApplication写一个单例Person)- 模仿系统单例
UIApplication特征:- 1.程序一启动的时候,苹果就会帮你创建
UIApplication, - 2.你如果调用
alloc,系统马上抛异常
- 1.程序一启动的时候,苹果就会帮你创建
- 模仿系统单例
|
|
UIApplicationDelegate
常识
1.在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的
delegate对象,让delegate代理来处理这些系统事件2.
delegate可处理的事件包括:2.1应用程序的生命周期事件(如程序启动和关闭)
2.2系统事件(如来电)
2.3内存警告
|
|
程序启动原理
一.首先找到程序入口,执行main函数
main -> UIApplicationMain
二.
UIApplicationMain底层做的事情1.创建
UIApplication对象2.创建
UIApplication的代理对象,而且给UIApplication对象代理属性赋值3.开启主运行循环,作用接收事件,让程序一直运行
4.加载
info.plist,判断下有木有指定main.storyboard,如果指定就会去加载
三.函数介绍:
NSStringFromClass:根据一个类名生成一个类名字符串NSClassFromString: 根据一个类名字符串生成一个类名
四.为什么使用
NSStringFromClassNSStringFromClass:输入类名有提示,避免输入错误
|
|
UIWindow
什么时候创建
- 1.加载
info.plist,判断有没有指定main.storyboard,指定了main.storyboard,就会去加载main.storyboard,执行main.storyboard的时候创建.
- 1.加载
main.storyboard步骤
- 2.1创建窗口
- 2.2加载控制器
- 2.3设置窗口的根控制器,显示窗口
手动创建窗口
1.什么时候创建?
- 1.1 在加载info.plist文件之后,程序启动才完成,启动完成之后,就要显示窗口,因此在程序启动完成的时候创建窗口.
|
|
窗口补充
1.应用程序中那些控件属于窗口,1.状态栏 2.键盘
2.窗口层级关系
UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal设置窗口的层级,层级谁大就显示在最外面3.UITextField显示键盘
- 注意点: 如果一个键盘想要弹出来,必须把textField添加到一个控件上.
addSubView和rootViewController的区别- 1> 直接用
addSubView,控制器会被释放,控制器就不能处理事件 - 2>直接用
addSubView,控制器的view不会自动旋转。 - 3> 用
rootViewController,控制器不会被释放,而且控制器的view会自动旋转 - 4>旋转事件->
UIApplication->Window->rootViewController->旋转控制器的view
- 1> 直接用