致谢
第1章 什么是Cocoa
1.1 历史简介
1.2 开发工具
1.3 语言
1.4 对象、类、方法和消息
1.5 框架
1.6 怎样阅读这本书
1.7 常见错误
1.8 怎样学习
第2章 起步
2.1 Xcode
新建一个项目
main函数
2.2 Interface Builder
Library窗口
空白窗口
布局界面
指示窗口
创建一个类
创建一个对象
建立连接
2.3 回到XCode
Objective.C中的类型和常量
查看头文件
编辑定义文件
编译运行
awakeFromNi
2.4 文档
2.5 你做了什么
第3章 Objective-C语言
3.1 创建、使用对象
3.2 使用已有的类
给nil发送消息
NSObject、NSArray、NSMutableArray和NSString
继承和组合
3.3 建自己的类
创建LotteryEntry类
修改lottery.m
实现description方法
编写Initializers(初始化器)
带参数的Initializer
3.4 调试器
3.5 补充知识:消息机制工作原理是什么
3.6 挑战
第4章 内存管理
4.1 开关垃圾收集器
4.2 使用Garbage Collection
4.3 使用Retain计数
实现dealloc
创建自动释放对象
Accessor方法
4.4 你完成了什么
第5章 Target/Action
5.1 一些常用的NSControl子类
NSButton
NSSlider
NSTextField
5.2 开始SpeakLine例子
5.3 Nib文件的布局
使用Interface Builder建立连接
NSWindow的initialFirstResponder Outlet
5.4 实现AppController类
5.5 补充知识:通过代码来设置target
5.6 挑战
5.7 调试建议
第6章 Helper对象
6.1 委托
6.2 NSTableView和它的dataSource
6.3 布局用户界面
6.4 创建连接
6.5 修改AppContr011er.m
实现委托时的常见错误
对象委托
6.6 补充知识:委托是如何工作的
6.7 挑战:创建一个委托
6.8 挑战:创建一个数据源
第7章 Key—Value Coding;Key—Value Observing
7.1 Key—Value Coding
7.2 绑定
7.3 Key-Value Observing
7.4 让Keys可被观察
7.5 Properties和它们的Attributes
@property和@synthesize
一个Property的Attributes
7.6 补充知识:Key Paths
7.7 补充知识:Key—value Observing
第8章 NSArrayController
8.1 开始写RaiseMan应用
在Xcode中
在Interface Builder中
8.2 Key-Value Coding和nil
8.3 添加排序
8.4 补充知识:不使用NSArrayController排序
……
第9章 NSUndoManager
第10章 Archiving
第11章 Core Data基本原理
第12章 Nib文件和NSWindowController
第13章 User Default
第14章 使用Notifications
第15章 使用Alert Panels
第16章 本地化
第17章 自定义视图
第18章 Image和鼠标事件
第19章 键盘事件
第20章 绘制带属性的文本
第21章 粘贴板和Nil-Targeted Actions
第22章 Categories
第23章 拖放
第24章 NSTimer
第25章 工作表
第26章 创建NSFormatter
第27章 打印
第28章 Web Service
第29章 视图切换
第30章 Core Data Relationships
第31章 垃圾收集
第32章 Core Animation
第33章 一个简单的Cocoa/Open GL应用程序
第34章 NSTask
第35章 结束
索引