好学的Objective-C

好学的Objective-C
作 者: Jiva DeVoe 林本杰
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: VC++
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Jiva DeVoe拥 有25年的软件开发经验,是专门开发iPhone和Mac OS X 应用的RandomIdeas软件公司的创始人,已有多个iPhone应用成为苹果广告中的推荐应用。此外,他还是Cocoa Touch for iPhoneOS 3 Developer Reference的作者。他的博客地址为www.random-ideas.net。

内容简介

要为市面上最热门的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开发人员的案头必备书籍。

图书目录

第一部分 Objective-C 简介

第1 章 Objective-C 简介  2

1.1 使用Xcode 进行开发  3

1.1.1 新建项目  3

1.1.2 项目文件  5

1.1.3 添加源码文件  6

1.1.4 主Xcode 窗口  7

1.2 理解编译过程  9

1.2.1 编码  9

1.2.2 源码、编译代码和可执行文件  11

1.2.3 查看应用包  11

1.2.4 编译设置  13

1.3 使用Xcode 静态分析器  17

1.4 Objective-C 运行时  20

1.5 小结  20

第2 章 基本语法  21

2.1 使用语句和表达式  23

2.1.1 声明变量  23

2.1.2 使用注释  25

2.1.3 标量类型  25

2.1.4 使用特殊变量修饰符  26

2.1.5 结构体  28

2.1.6 使用类型定义  29

2.1.7 使用enum   30

2.1.8 指针  31

2.1.9 使用运算符  35

2.1.10 三目运算符  37

2.2 使用函数  37

2.2.1 函数  37

2.2.2 定义函数  39

2.2.3 实现与接口  41

2.2.4 链接实现文件  42

2.3 控制程序流 43

2.3.1 使用条件语句  44

2.3.2 使用循环语句  47

2.4 活学活用  50

2.5 小结  53

第3 章 添加对象  54

3.1 对象  54

3.1.1 创建类  58

3.1.2 声明对象  64

3.1.3 调用对象方法  65

3.2 使用属性  66

3.2.1 状态和行为的区别  66

3.2.2 使用点标记  71

3.3 应用对象  72

3.3.1 创建员工对象  72

3.3.2 创建经理类  75

3.3.3 在HR 主函数中关联不同的类  77

3.4 小结  78

第4 章 Objective-C 内存管理  79

4.1 使用引用计数  79

4.1.1 内存管理规则  81

4.1.2 使用自动释放  82

4.1.3 对象内部的内存  85

4.2 使用垃圾回收  88

4.2.1 垃圾回收器  88

4.2.2 为项目配置垃圾回收  90

4.2.3 在垃圾回收项目中使用框架  91

4.3 关键的垃圾回收模式  92

4.3.1 管理有限的资源  92

4.3.2 编写支持垃圾回收的基础应用  94

4.3.3 处理nib 文件中的对象  94

4.3.4 强制垃圾回收  95

4.3.5 处理空指针和垃圾回收  95

4.3.6 使用垃圾回收的面向对象接口  96

4.4 项目使用的内存管理模型  97

4.5 小结  97

第二部分 更多特性

第5 章 代码块  100

5.1 了解代码块  100

5.1.1 声明代码块  100

5.1.2 使用代码块  102

5.2 了解重要的代码块作用域  103

5.2.1 管理代码块内存  104

5.2.2 通过typedef 提高代码块的可读性  105

5.3 在线程中使用代码块  106

5.3.1 使用GCD  106

5.3.2 使用GCD 在线程中调度代码块  106

5.4 通用的代码块设计模式  107

5.4.1 将代码块作为映射  107

5.4.2 在标准API 中使用代码块  108

5.5 在易并行任务中应用代码块  109

5.5.1 创建项目  109

5.5.2 在数组中使用代码块过滤素数  111

5.5.3 使用GCD  114

5.6 小结  116

第6 章 键值编码和键值观察  117

6.1 通过键值编码访问对象属性  117

6.1.1 键路径  119

6.1.2 编写符合KVC 标准的存取器方法  121

6.1.3 在数组中使用KVC  123

6.1.4 在结构体和标量中使用KVC  127

6.1.5 查找对象特性  128

6.2 观察对符合KVC 标准的值的修改  128

6.2.1 使用KVO  129

6.2.2 注册成为观察者  129

6.2.3 定义KVO 的回调  130

6.2.4 移除观察者  131

6.2.5 实现手动通知  132

6.2.6 使用KVO 的风险  133

6.3 应用键值观察  133

6.4 小结  136

第7 章 使用协议  137

7.1 优先使用组合而不是继承  137

7.1.1 了解为什么不需要(或不想要)多继承  139

7.1.2 理解协议如何解决问题  139

7.1.3 记录期望别人实现的接口  140

7.2 在对象中实现协议  141

7.2.1 声明协议  141

7.2.2 声明一个类实现了协议  143

7.2.3 声明一个必须实现协议的对象  143

7.2.4 正式协议和非正式协议  144

7.2.5 确定一个对象是否实现了可选方法  144

7.2.6 避免协议循环依赖  146

7.3 协议使用示例  146

7.4 小结  147

第8 章 扩展现有类  148

8.1 使用第三方框架和类  148

8.2 使用类别  149

8.2.1 声明类别  149

8.2.2 实现类别方法  150

8.2.3 在头文件中声明类别  150

8.2.4 使用类别  150

8.2.5 通过类别拆分功能  151

8.2.6 扩展类方法  151

8.2.7 分析类别的局限性  153

8.2.8 通过类别实现协议  153

8.2.9 了解在NSObject 上创建类别的风险  154

8.3 通过匿名类别扩展类  154

8.4 在现有类中关联变量  155

8.5 小结  157

第9 章 编写宏  158

9.1 回顾编译过程  158

9.2 定义宏  162

9.2.1 定义常量  163

9.2.2 通过编译传递常量  163

9.2.3 在宏中使用变量  165

9.2.4 字符串化  165

9.2.5 使用条件判断  167

9.2.6 使用内置宏  167

9.3 小结  167

第10 章 错误处理  168

10.1 错误分类  168

10.2 使用错误处理的不同机制  169

10.2.1 使用返回码  170

10.2.2 使用异常  171

10.2.3 使用NSError  176

10.3 小结  180

第三部分 使用 Foundation 框架

第11 章 了解框架之间如何配合工作  182

11.1 了解Foundation 框架  182

11.2 在项目中使用框架  184

11.2.1 添加框架  184

11.2.2 包含头文件  185

11.2.3 考虑垃圾回收  185

11.3 小结  185

第12 章 使用字符串  186

12.1 了解字符串声明语法  186

12.1.1 使用格式化字符串  188

12.1.2 使用其他NSString 方法  189

12.1.3 使用NSString 类别  190

12.2 小结  190

第13 章 使用集合  191

13.1 使用数组  191

13.1.1 使用字典  193

13.1.2 使用Set 集合  195

13.1.3 认识可变性  196

13.2 了解集合和内存管理  198

13.3 遍历  200

13.4 向元素发送消息  201

13.5 排序和过滤  201

13.6 在集合中使用代码块  203

13.7 小结  204

第14 章 使用NSValue、NSNumber和NSData  205

14.1 使用NSValue 和NSNumber  206

14.1.1 通过NSValue 包装任意数据类型  206

14.1.2 通过NSNumber 包装数字  207

14.1.3 通过NSDecimalNumber进行算术运算  207

14.2 使用NSData 和NSMutableData  208

14.2.1 创建NSData 对象  208

14.2.2 访问NSData 对象中的生数据  209

14.3 小结  209

第15 章 处理时间和日期  210

构建日期  211

使用时间间隔  211

日期比较  211

使用NSCalender  212

使用时区  213

15.1 使用NSDateFormatter  214

15.2 小结  214

第四部分 高级主题

第16 章 通过多个线程实现多处理  216

16.1 同步代码  217

16.1.1 使用锁  217

16.1.2 使用@synchronize 关键字  219

16.1.3 理解原子性  220

16.2 创建NSTread  221

16.2.1 创建线程  221

16.2.2 控制运行的线程  221

16.2.3 访问主线程  222

16.2.4 通过执行选择器跨线程  223

16.3 使用NSOperation 和NSOperationQueue  223

16.3.1 创建操作  224

16.3.2 将操作加入到队列  225

16.3.3 控制队列参数  225

16.3.4 使用不同的操作  226

16.4 小结  227

第17 章 Objective-C 设计模式  228

17.1 识别解决方案中的模式  228

17.2 用Objective-C 描述设计模式  229

17.2.1 使用单例  229

17.2.2 委托责任  233

17.2.3 将变化通知给多个对象  234

17.3 小结  237

第18 章 利用NSCoder 读写数据  238

在对象上实现NSCoding 协议  238

对象编码  238

基本类型编码  240

使用对象图  240

使用其他类型的数据  241

解码对象  242

18.1 使用NSArchiver 和NSUnarchiver  243

18.2 处理存档文件格式和遗留数据  244

18.3 小结  244

第19 章 在其他平台上使用Objective-C  245

19.1 使用GNUstep  245

19.1.1 使用Cocotron  247

19.1.2 使用其他开源库  248

19.2 展望未来  248

19.3 小结  249