前注:本文章未完成,但是考虑到目前的iOS版本比起当时我写这个笔记的时候已经有很大变化了,所以很多内容可能不同。
本文地址:https://segmentfault.com/a/11...
核心应用程序
应用程序的生命周期:
用户程序里面包含了一个标准的main()函数,这个函数里面的代码应该是最小程度地使用,要么就不改。
main()函数做的事情有两个:
1、创建自动释放池(autoreleasepool)
2、调用UIApplicationMain()
应用程序的委托(delegate)
每个应用程序中,必须要有这些delegate方法。参见UIApplicationDelegate文档。
这个delegate对象负责处理几个关键的系统事件,很大程度上,用户程序的入口甚至可以说就是从这些delegate开始的。
事件处理周期
比如一个触摸动作,数据传递过程为:
触摸数据 ——封装于——> UIEvent ——包含——> UITouch
UIApplication对象用一个处理触摸事件的输入原来配置主循环(main runloop)
应用程序 ——派发事件——> UIWindow对象 ——传送事件——> 第一响应者
第一响应者(first responder)是什么?一般就是各种UIApplication、UIWindows、UIView或其派生类。
基本设计模式
iOS开发使用MVC模式,分别是模型 - 视图 - 控制器
- 模型:负责数据的维护
- 视图:GUI
- 控制:上述两者的框架
委托
目标 - 动作:控件将用户预先定义好的“动作”发给“控件”处理
内存模型:引用计数
应用程序运行环境
启动、关闭方式
在iOS中,每次只能有一个前台程序在运行。点击应用程序图标时,程序启动,并应该快速初始化。
点击Home时,iOS通知应用程序推出,此时应该尽快保存需要保存的数据,否则5秒内整个程序可能会被终止(注:现在就不一定了)
设计应用程的时候,要让用户看起来觉得好像程序正在后台运行一样。
应用程序的程序包
一个典型的App程序包(比如命名为SomeApp)的内容为:
- SomeApp:可执行文件(必需)
- Settings.bundle:配置文件的偏好设置
- Icon.png:57x57的主icon
- IconSettings.png:29x29的icon,用在setting程序中显示
- MainWindow.nib:应用程序的主nib文件
- Default.png:480x320,在App启动时作为临时界面显示
- iTunesArtwork:512x512的icon,用在使用ad-hoc方式发布的程序中
- Info.plist:属性列表
- en.lproj:本地化资源
信息属性列表
(待续……)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。