内容简介
要为市面上最热门的Mac、iPhone和iPad等设备创建应用,就必须掌握Objective-C和面向对象编程。《好学的Objective-C》作者是顶尖的Mac开发人员和专业作家。通过本书的详尽指引,即使是编程新手也可以迅速学会Objective-C。本书全方位地介绍了Objective-C,从基础知识到资深程序员所使用的高级技术等众多主题,其中包括内存管理、多个框架的结合使用、线程安全的技巧,以及Xcode的详细用法等。通过阅读本书,读者将能够:掌握Objective-C语法、运行时和Xcode,编写出第一个移动应用程序创建类,使用属性,了解对象使用代码块、线程、KVO和协议定义和编写宏,处理错误并在项目中使用框架清理线程,学会使用设计模式,掌握高级技术利用NSCoder读写数据为Windows、Linux和其他平台编写代码本书既能引导Mac、iPhone和iPad开发新手入门,又可帮助高级程序员提高技能,是Objective-C开发人员的案头必备书籍。
作者简介
Jiva DeVoe,拥有25年的软件开发经验,是专门开发iPhone和Mac OS X 应用的Random Ideas软件公司的创始人,已有多个iPhone应用成为苹果广告中的推荐应用。此外,他还是Cocoa Touch for iPhone OS 3 Developer Reference的作者。
目录
第一部分 Objective-C 简介
第1 章 Objective-C 简介
1.1 使用Xcode 进行开发
1.1.1 新建项目
1.1.2 项目文件
1.1.3 添加源码文件
1.1.4 主Xcode 窗口
1.2 理解编译过程
1.2.1 编码
1.2.2 源码、编译代码和可执行文件
1.2.3 查看应用包
1.2.4 编译设置
1.3 使用Xcode 静态分析器
1.4 Objective-C 运行时
1.5 小结
第2 章 基本语法
2.1 使用语句和表达式
2.1.1 声明变量
2.1.2 使用注释
2.1.3 标量类型
2.1.4 使用特殊变量修饰符
2.1.5 结构体
2.1.6 使用类型定义
2.1.7 使用enum
2.1.8 指针
2.1.9 使用运算符
2.1.10 三目运算符
2.2 使用函数
2.2.1 函数
2.2.2 定义函数
2.2.3 实现与接口
2.2.4 链接实现文件
2.3 控制程序流 43
2.3.1 使用条件语句
2.3.2 使用循环语句
2.4 活学活用
2.5 小结
第3 章 添加对象
3.1 对象
3.1.1 创建类
3.1.2 声明对象
3.1.3 调用对象方法
3.2 使用属性
3.2.1 状态和行为的区别
3.2.2 使用点标记
3.3 应用对象
3.3.1 创建员工对象
3.3.2 创建经理类
3.3.3 在HR 主函数中关联不同的类
3.4 小结
第4 章 Objective-C 内存管理
4.1 使用引用计数
4.1.1 内存管理规则
4.1.2 使用自动释放
4.1.3 对象内部的内存
4.2 使用垃圾回收
4.2.1 垃圾回收器
4.2.2 为项目配置垃圾回收
4.2.3 在垃圾回收项目中使用框架
4.3 关键的垃圾回收模式
4.3.1 管理有限的资源
4.3.2 编写支持垃圾回收的基础应用
4.3.3 处理nib 文件中的对象
4.3.4 强制垃圾回收
4.3.5 处理空指针和垃圾回收
4.3.6 使用垃圾回收的面向对象接口
4.4 项目使用的内存管理模型
4.5 小结
第二部分 更多特性
第5 章 代码块
5.1 了解代码块
5.1.1 声明代码块
5.1.2 使用代码块
5.2 了解重要的代码块作用域
5.2.1 管理代码块内存
5.2.2 通过typedef 提高代码块的可读性
5.3 在线程中使用代码块
5.3.1 使用GCD
5.3.2 使用GCD 在线程中调度代码块
5.4 通用的代码块设计模式
5.4.1 将代码块作为映射
5.4.2 在标准API 中使用代码块
5.5 在易并行任务中应用代码块
5.5.1 创建项目
5.5.2 在数组中使用代码块过滤素数
5.5.3 使用GCD
5.6 小结
第6 章 键值编码和键值观察
6.1 通过键值编码访问对象属性
6.1.1 键路径
6.1.2 编写符合KVC 标准的存取器方法
6.1.3 在数组中使用KVC 123
6.1.4 在结构体和标量中使用KVC
6.1.5 查找对象特性
6.2 观察对符合KVC 标准的值的修改
6.2.1 使用KVO
6.2.2 注册成为观察者
6.2.3 定义KVO 的回调
6.2.4 移除观察者
6.2.5 实现手动通知
6.2.6 使用KVO 的风险
6.3 应用键值观察
6.4 小结
第7 章 使用协议
7.1 优先使用组合而不是继承
7.1.1 了解为什么不需要(或不想要)多继承
7.1.2 理解协议如何解决问题
7.1.3 记录期望别人实现的接口
7.2 在对象中实现协议
7.2.1 声明协议
7.2.2 声明一个类实现了协议
7.2.3 声明一个必须实现协议的对象
7.2.4 正式协议和非正式协议
7.2.5 确定一个对象是否实现了可选方法
7.2.6 避免协议循环依赖
7.3 协议使用示例
7.4 小结
第8 章 扩展现有类
8.1 使用第三方框架和类
8.2 使用类别
8.2.1 声明类别
8.2.2 实现类别方法
8.2.3 在头文件中声明类别
8.2.4 使用类别
8.2.5 通过类别拆分功能
8.2.6 扩展类方法
8.2.7 分析类别的局限性
8.2.8 通过类别实现协议
8.2.9 了解在NSObject 上创建类别的风险
8.3 通过匿名类别扩展类
8.4 在现有类中关联变量
8.5 小结
第9 章 编写宏
9.1 回顾编译过程
9.2 定义宏
9.2.1 定义常量
9.2.2 通过编译传递常量
9.2.3 在宏中使用变量
9.2.4 字符串化
9.2.5 使用条件判断
9.2.6 使用内置宏
9.3 小结
第10 章 错误处理
10.1 错误分类
10.2 使用错误处理的不同机制
10.2.1 使用返回码
10.2.2 使用异常
10.2.3 使用NSError
10.3 小结
第三部分 使用 Foundation 框架
第11 章 了解框架之间如何配合工作
11.1 了解Foundation 框架
11.2 在项目中使用框架
11.2.1 添加框架
11.2.2 包含头文件
11.2.3 考虑垃圾回收
11.3 小结
第12 章 使用字符串
12.1 了解字符串声明语法
12.1.1 使用格式化字符串
12.1.2 使用其他NSString 方法
12.1.3 使用NSString 类别
12.2 小结
第13 章 使用集合
13.1 使用数组
13.1.1 使用字典
13.1.2 使用Set 集合
13.1.3 认识可变性
13.2 了解集合和内存管理
13.3 遍历
13.4 向元素发送消息
13.5 排序和过滤
13.6 在集合中使用代码块
13.7 小结
第14 章 使用NSValue、NSNumber和NSData
14.1 使用NSValue 和NSNumber
14.1.1 通过NSValue 包装任意数据类型
14.1.2 通过NSNumber 包装数字
14.1.3 通过NSDecimalNumber进行算术运算
14.2 使用NSData 和NSMutableData
14.2.1 创建NSData 对象
14.2.2 访问NSData 对象中的生数据
14.3 小结
第15 章 处理时间和日期
构建日期
使用时间间隔
日期比较
使用NSCalender
使用时区
15.1 使用NSDateFormatter
15.2 小结
第四部分 高级主题
第16 章 通过多个线程实现多处理
16.1 同步代码
16.1.1 使用锁
16.1.2 使用@synchronize 关键字
16.1.3 理解原子性
16.2 创建NSTread
16.2.1 创建线程
16.2.2 控制运行的线程
16.2.3 访问主线程
16.2.4 通过执行选择器跨线程
16.3 使用NSOperation 和NSOperationQueue
16.3.1 创建操作
16.3.2 将操作加入到队列
16.3.3 控制队列参数
16.3.4 使用不同的操作
16.4 小结
第17 章 Objective-C 设计模式
17.1 识别解决方案中的模式
17.2 用Objective-C 描述设计模式
17.2.1 使用单例
17.2.2 委托责任
17.2.3 将变化通知给多个对象
17.3 小结
第18 章 利用NSCoder 读写数据
在对象上实现NSCoding 协议
对象编码
基本类型编码
使用对象图
使用其他类型的数据
解码对象
18.1 使用NSArchiver 和NSUnarchiver
18.2 处理存档文件格式和遗留数据
18.3 小结
第19 章 在其他平台上使用Objective-C
19.1 使用GNUstep
19.1.1 使用Cocotron
19.1.2 使用其他开源库
19.2 展望未来
19.3 小结
|
|