第一章
Xcode需要运行在基于Intel的Leopard之后的Mac OS之上
Cocoa Touch使用Objective-C 2.0
编写iPhone应用程序的特别之处
只有一个正在运行的程序
只有一个窗口
访问受限 沙盒
有限的响应时间 按下Home后5秒内没完成清理,将被强制退出
有限的屏幕大小 480*320
有限的系统资源 内存不足时,应用程序会收到通知。如果不能及时释放内存,可能被强制退出
缺少Cocoa工具 不支持垃圾收集
新属性 定位、摄像、图片库和加速计
本书内容
2 Interface Builder基础
3 基础交互
4 基本控件
5 方向感应
6 多视图
7 工具栏
8 TableView
9 分层列表
10 应用程序设置
11 数据管理 SQLite
12 绘图 Quartz和OpenGL ES
13 多点触摸
14 Core Location
15 加速计
16 摄像头和图片库
17 I18n
第二章
Project的目录结构,仅为逻辑结构
Classes 存放大部分代码
Other Sources 其他源代码
.pch 预编译的头文件 precompiled header
main.m main函数,通常不需修改
Resources 非代码文件,图标、图像、音频、视频文本
.xib Interface Builder用到的信息
Info.plist 应用程序相关属性列表
MainWindow.xib 主Interface Builder文件
Frameworks 框架和库
Products 编译生成的应用程序
Interface Builder
支持.nib(旧)和.xib(新)两种格式,统称nib或nib文件
nib文件的构成
File’s Owner 所有nib文件的第一个图标,表示加载nib文件的对象,控制器类是与之同名的nib文件的Owner
First Responder 用户当前正在与之交互的对象,随用户与界面的交互而变化
其他图标表示将在nib文件加载时创建的对象实例
图标
png 57*57
放到Resources文件夹中
在Info.plist中设置
仿真器
删除~/Library/Application Support/iPhone Simulator以清空主屏幕图标
第三章
MVC模型
M Objective-C类
V Interface Builder
C NSObject,更多的是通用控制器类,如UIViewController
控制器
控制器类试用一种特殊的实例变量(输出口,outlet)来引用nib中的对象
输出口可以看成是指向nib中的对象的指针
可以通过绑定操作方法,设置nib文件的界面对象触发控制类中的特殊方法
输出口
IBOutlet 一个没有内容的宏,唯一作用是告诉Interface Builder此实例变量将被连接到nib中的对象
操作
IBAction 告诉Interface Builder,此方法是一个操作,且可以被某控件触发
- (IBAction)doSomething:(id) sender;
Outlet与Action的声明
@property (retain, nonatomic) IBOutlet UILabel *statusText;
retain 对象在内存中驻留
nonatomic 无须支持多线程?
myVar = [someObj foo] 等价于 myVar = someObj.foo
someObj.foo = myVar 等价于 [someObj setFoo:myVar]
Outlet与Action的实现
@synthesize statusText
[statusText release] in dealloc(),照应retain
应用程序委托
每个iPhone应用程序有且仅有一个UIApplication实例,负责应用程序的运行循环以及处理各种应用程序级功能
连接输出口
Control+拖动,从File‘s Owner到相应的控件对象
指定操作
Touch Up Inside
拖动,从Event到File‘s Owner
近期评论