iPhone SDK 应用程序开发 第一章

本文探讨了苹果桌面系统如何通过模块化和自包含的应用程序结构提高灵活性,并深入解析了Objective-C的消息机制、预处理指令及协议等关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

苹果桌面系统采用的策略,就是创建一种模块化、自包含的应用程序,这种应用程序仅由其自身内部的文件资源构成。
1.1 应用程序剖析
Mac OS X 的前身,NeXT系统,它将应用程序视为一个目录所构成的束。束这个概念引入了一种方法,可以聚合应用程序资源、二进制文件和其他相关文件。
应用程序运行所需的一切都必须包含在自身的目录结构内。(沙盒)应用程序并不知道自己的安装位置,每次安装时,都会有一个唯一标识被添加到你的应用程序的路径中。(NSHomeDirectory)
应用程序的结构:
Documents
一个专用文件夹,存储用户创建的文档。
library
存储程序安装后穿件的配置和其他资源

1.2 消息机制
在Objective-c中,是通过向他们所属的对象发送消息来实现调用的。
和c语言不同的是:C的函数调用必须是预定义的,而Objective-c 的消息传递方式则允许开发者在运行时动态的创建新的方法和消息,或者对一个对象进行测试,看它是否对特定的消息作出响应。

预处理指令#import
使用#import的一个好处是他有一种内建的逻辑,可以确保同一个资源被包含的次数绝对不会多于一次。

协议
协议是一组商定的方法,一个对象实现了这些方法就可以与其他某些对象通信。代理协议使用来通知某个对象在另一个对象中发生了一些事件

类别
在不改变元类的基础上,扩展一些方法

苹果官方文档 目录 介绍 3 谁应该阅读本文? 3 先决条件 4 本文的组织 4 提供反馈 4 相关信息 5 核心应用程序 6 核心应用程序架构 6 应用程序的生命周期 6 事件处理周期 9 基本设计模式 11 应用程序运行环境 12 启动过程快,使用时间短 12 应用程序沙箱 13 虚拟内存系统 13 自动休眠定时器 14 应用程序的程序包 14 信息属性列表 16 应用程序图标和启动图像 21 Nib文件 21 处理关键的应用程序任务 22 初始化和终止 22 响应中断 23 观察低内存警告 25 定制应用程序的行为 25 以景观模式启动 25 和其它应用程序进行通讯 26 实现定制的URL模式 27 显示应用程序的偏好设置 31 关闭屏幕锁定 31 国际化您的应用程序 32 性能和响应速度的调优 34 不要阻塞主线程 34 有效地使用内存 34 浮点数学运算的考虑 36 减少电力消耗 36 代码的优化 38 窗口和视图 39 什么是窗口和视图? 39 UIWindow的作用 39 UIView是作用 40 UIKit的视图类 41 视图控制器的作用 43 视图架构和几何属性 43 视图交互模型 44 视图渲染架构 46 视图坐标系统 48 边框、边界、和中心的关系 49 坐标系统变换 51 内容模式与比例缩放 52 自动尺寸调整行为 54 创建和管理视图层次 55 创建一个视图对象 57 添加和移除子视图 57 视图层次中的坐标转换 60 标识视图 61 在运行时修改视图 61 实现视图动画 61 响应布局的变化 63 重画视图的内容 64 隐藏视图 65 创建一个定制视图 65 初始化您的定制视图 65 描画您的视图内容 66 响应事件 67 视图对象的清理 68 触摸事件 69 事件和触摸 69 事件的传递 71 处理多点触摸事件 73 运动事件 80 拷贝、剪切、和粘贴操作 81 UIKit中支持拷贝-粘贴操作的设施 82 粘贴板的概念 82 选择和菜单管理 85 拷贝和剪切选定的内容 87 粘贴选定内容 89 消除编辑菜单 90 图形和描画 91 UIKit的图形系统 91 视图描画周期 91 坐标和坐标变换 92 图形上下文 93 点和像素的不同 93 颜色和颜色空间 94 支持的图像格式 94 描画贴士 95 确定何时使用定制的描画代码 95 提高描画的性能 95 保持图像的质量 96 用Quartz和UIKit进行描画 96 配置图形上下文 97 创建和描画图像 99 创建和描画路径 100 创建样式、渐变、和阴影 101 用OpenGL ES进行描画 101 应用Core Animation的效果 101 关于层 102 关于动画 102 文本和Web 103 关于文本和Web的支持 103 文本视图 103 Web视图 104 键盘和输入法 106 管理键盘 107 接收键盘通告 107 显示键盘 109 取消键盘 109 移动键盘下面的内容 109 描画文本 113 在Web视图中显示内容 113 文件和网络 114 文件和数据管理 114 常用目录 114 备份和恢复 115 在应用程序更新过程中被保存的文件 116 Keychain数据 116 获取应用程序目录的路径 117 文件数据的读写 118 文件访问的指导原则 123 保存状态信息 123 大小写敏感性 124 网络 124 有效进行网络通讯的贴士 124 使用Wi-Fi 125 飞行模式警告 125 多媒体支持 127 在iPhone OS上使用声音 127 基础:硬件编解码器、音频格式、和音频会话 128 播放音频 131 录制音频 141 解析音频流 144 iPhone OS系统上的音频单元支持 145 iPhone音频的最佳实践 145 在iPhone OS使用视频 147 录制视频 147 播放视频文件 147 设备支持 150 确定硬件支持是否存在 150 和配件进行通讯 151 配件的基础 151 声明应用程序支持的协议 152 在运行时连接配件 152 监控与配件有关的事件 154 访问加速计事件 155 选择恰当的更新频率 156 从加速计数据中分离重力成分 157 从加速计数据中分离实时运动成分 157 取得当前设备的方向 158 使用位置和方向服务 159 取得用户的当前位置 159 获取与方向有关的事件 161 显示地图和注解 163 在用户界面中加入地图视图 163 显示注解 165 通过反向地理编码器获取地标信息 173 用照相机照相 174 从照片库中选取照片 176 使用邮件编辑界面 177 应用程序偏好设置 180 偏好设置的指导原则 180 偏好设置的接口 180 Settings程序包 182 Settings页面文件的格式 183 多层次的偏好设置 183 本地化资源 184 添加和修改Settings程序包 185 添加Settings程序包 185 为Settings页面的编辑做准备 185 配置一个Settings页面:一个教程 186 创建额外的Settings页面文件 189 访问您的偏好设置 189 在仿真器中调试应用程序的偏好设置 190 文档修订历史 191
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值