Obejctive-C 2.0 Mac和iOS开发实践指南


请输入要查询的词条内容:

Obejctive-C 2.0 Mac和iOS开发实践指南




基本信息


原书名: Learning Objective-C 2.0: A Hands-On Guide to Objective-C for Mac and iOS Developers

原出版社: Addison-Wesley Professional

作者: (美)Robert Clair [作译者介绍]

译者: 李强

出版社:机械工业出版社

ISBN:9787111329275

上架时间:2011-3-7

出版日期:2011 年2月

开本:16开

页码:283

版次:1-1

内容简介


《obejctive-c 2.0 mac和ios开发实践指南》专门为那些想要学习objective-c以便为mac os x或ios编写程序的程序员量身打造。本书分为四部分。第一部分介绍学习objective-c编程所需的c语言基础知识。第二部分介绍objective-c编程的核心知识,包括消息机制、类和对象、类对象等。第三部分介绍objective-c中的高级概念,包括引用计数、垃圾收集和objective-c 2.0的新功能块。第四部分提供了objective-c程序员常用的信息和资料。本书大多数章末都提供了练习,读者可以通过练习巩固在书中学到的知识。

《obejctive-c 2.0 mac和ios开发实践指南》内容精练、可读性强、易于学习,侧重通过示例来介绍知识点和概念,是一本学习objective-c 2.0不可多得的入门实践指南。本书适合想要学习objective-c 2.0编程语言的初、中级程序员阅读,也可以作为社会培训机构的入门级培训教辅材料。

目录


对本书的赞誉

译者序

前言

致谢

第一部分 objective-c简介

第1章 c,objective-c的基础 2

1.1 c程序的结构 3

1.1.1 main函数 3

1.1.2 格式化 3

1.1.3 注释 4

1.1.4 变量和函数名 4

1.1.5 命名惯例 5

1.1.6 文件 5

1.2 变量 6

1.2.1 整数类型 6

1.2.2 浮点类型 7

1.2.3 真值 7

1.2.4 初始化 7

1.2.5 指针 8

1.2.6 数组 9

.1.2.7 字符串 10

1.2.8 结构 10

1.2.9 typedef 12

1.2.10 枚举常量 12

1.3 运算符 12

1.3.1 算术运算符 12

1.3.2 余数运算符 13

1.3.3 自增和自减运算符 13

1.3.4 优先级 13

1.3.5 取反 14

1.3.6 比较 14

1.3.7 逻辑运算符 14

1.3.8 逻辑取反 15

1.3.9 赋值运算符 15

1.3.10 转换和强制类型转换 16

1.3.11 其他赋值运算符 16

1.4 表达式和语句 17

1.4.1 表达式 17

1.4.2 计算表达式 17

1.4.3 语句 18

1.4.4 复合语句 18

1.5 程序流程 18

1.5.1 if 18

1.5.2 条件表达式 19

1.5.3 while 20

1.5.4 do-while 20

1.5.5 for 20

1.5.6 break 21

1.5.7 continue 22

1.5.8 逗号表达式 22

1.5.9 switch 22

1.5.10 goto 23

1.5.11 函数 24

1.5.12 声明函数 25

1.6 预处理器 26

1.6.1 包含文件 26

1.6.2 #define 26

1.6.3 条件编译 27

1.7 printf 28

1.8 使用gcc和gdb 29

1.9 小结 30

1.10 练习 30

第2章 c变量 33

2.1 objective-c程序的内存布局 33

2.2 自动变量 34

2.3 外部变量 35

2.4 声明关键字 35

2.4.1 auto 35

2.4.2 extern 36

2.4.3 static 36

2.4.4 register 37

2.4.5 const 37

2.4.6 volatile 37

2.5 作用域 38

2.5.1 自动变量的作用域 38

2.5.2 复合语句和作用域 38

2.5.3 外部变量的作用域 39

2.6 动态分配 39

2.7 小结 41

2.8 练习 42

第3章 面向对象编程简介 43

3.1 面向对象编程 43

3.1.1 类和实例 43

3.1.2 方法 44

3.1.3 封装 44

3.1.4 继承 44

3.1.5 多态 45

3.1.6 面向对象语言的主要特点是什么 45

3.2 objective-c简介 45

3.2.1 定义类 46

3.2.2 类名作为类型 48

3.2.3 消息(调用方法) 48

3.2.4 类对象和对象创建 50

3.2.5 内存管理 51

3.3 objective-c添加 51

3.3.1 运行时 51

3.3.2 名称 52

3.3.3 消息表达式 52

3.3.4 编译器指令 52

3.3.5 直接量字符串 52

3.3.6 objective-c关键字 53

3.3.7 cocoa数字类型 55

3.4 小结 56

第4章 第一个objective-c程序 57

4.1 使用xcode构建 57

4.2 objective-c程序结构 59

4.3 面向对象的hello world 61

4.3.1 greeter.h 63

4.3.2 greeter.m 65

4.4 helloobjectivec.m 68

4.5 小结 69

4.6 练习 70

第二部分 语言基础

第5章 消息 72

5.1 方法 72

5.1.1 一个简单的方法 72

5.1.2 带有参数的方法 73

5.2 消息 74

5.3 消息细节 76

5.3.1 嵌套 76

5.3.2 向nil发送消息 77

5.3.3 向self发送消息 78

5.3.4 覆盖并向super发送消息 78

5.3.5 选择器 80

5.3.6 具有相同名称的方法 81

5.3.7 动态类型和静态类型 82

5.4 幕后工作 83

5.5 消息转发 84

5.6 效率 85

5.7 内省和其他运行时乐趣 87

5.8 小结 88

5.9 练习 88

第6章 类和对象 90

6.1 定义类 90

6.1.1 接口部分 90

6.1.2 @class指令 91

6.1.3 实现部分 92

6.1.4 导入 92

6.2 子类化一个类 93

6.2.1 定义一个子类 93

6.2.2 子类示例 94

6.2.3 类继承 97

6.2.4 类层级示例 97

6.2.5 抽象类 98

6.3 创建对象 99

6.3.1 对象分配 99

6.3.2 对象初始化 100

6.4 销毁对象 106

6.5 复制对象 107

6.5.1 浅复制和深复制 108

6.5.2 可变复制和不可变复制 108

6.5.3 在自己的类中实现复制 109

6.6 小结 111

6.7 练习 112

第7章 类对象 113

7.1 类对象 113

7.1.1 类类型 114

7.1.2 类方法 115

7.2 其他类方法 116

7.2.1 简便构造函数 116

7.2.2 单体 118

7.2.3 初始化类 118

7.3 模拟类变量 120

7.4 小结 124

7.5 练习 125

第8章 框架 127

8.1 什么是框架 127

8.2 cocoa框架 128

8.3 appkit 129

8.4 core foundation 130

8.4.1 core foundation对象的内存管理 131

8.4.2 自由转换 132

8.5 core graphics 133

8.6 core animation 133

8.7 其他apple提供的框架 134

8.8 第三方框架 134

8.9 幕后揭秘 135

8.10 小结 135

第9章 常用foundation类 136

9.1 可变类和不可变类 136

9.2 类簇 136

9.3 nsstring 137

9.3.1 nsstring示例 138

9.3.2 c字符串和nsstring之间的转换 140

9.3.3 直接量字符串 141

9.4 集合类 141

9.4.1 nsarray 141

9.4.2 nsdictionary 144

9.4.3 nsset 145

9.5 nsnumber 146

9.6 nsnull 147

9.7 nsdata 148

9.7.1 访问nsdata的字节 149

9.7.2 文件和nsdata之间的转换 149

9.8 nsurl 149

9.9 结构 150

9.10 小结 151

9.11 练习 151

第10章 objective-c中的控制结构 153

10.1 if语句 153

10.2 for语句和隐式循环 156

10.2.1 for语句 156

10.2.2 隐式循环 156

10.2.3 带有块的隐式循环 157

10.3 while语句和nsenumerator 157

10.4 快速枚举 159

10.5 一个使用快速枚举的示例 161

10.6 异常 164

10.6.1 抛出自己的异常 165

10.6.2 多个@catch语句块 166

10.6.3 嵌套异常处理 167

10.6.4 使用异常 168

10.6.5 应该使用异常吗 168

10.7 小结 170

10.8 练习 170

第11章 分类、扩展和安全 172

11.1 分类 172

11.1.1 使用分类覆盖方法 174

11.1.2 分类的其他用法 175

11.2 扩展 176

11.3 实例变量作用域(访问控制) 177

11.4 对方法的访问控制 178

11.5 命名空间 179

11.6 安全 179

11.7 从objective-c调用c函数 181

11.7.1 技术上 181

11.7.2 实践上 182

11.7.3 哲学上 182

11.8 小结 182

11.9 练习 182

第12章 特性 184

12.1 在对象之外访问实例变量(不要这么做) 184

12.2 声明和实现访问器 185

12.3 使用特性的访问器 187

12.4 @property语句 189

12.4.1 assign、retain和copy 189

12.4.2 readwrite和readonly 190

12.4.3 nonatomic 190

12.4.4 setter=nam和getter=name 191

12.4.5 attributes和@dynamic 191

12.5 关于@dynamic的更多内容 191

12.6 特性和内存管理 193

12.7 子类化和特性 194

12.8 对readonly特性隐藏setter 195

12.9 特性作为文档 195

12.10 点语法 196

12.10.1 点语法和特性 197

12.10.2 点语法和c结构 198

12.11 小结 199

12.12 练习 199

第13章 协议 201

13.1 协议 201

13.2 使用协议 202

13.2.1 声明一个协议 202

13.2.2 采用协议 203

13.2.3 协议作为类型 203

13.2.4 特性和协议 203

13.3 tableprinter示例 204

13.3.1 tableprinterdatasource 205

13.3.2 tableprinter 205

13.3.3 fruitbasket 207

13.3.4 main 209

13.3.5 一个问题 210

13.3.6 实现可选的方法 210

13.4 协议对象和一致性测试 211

13.5 非正式协议 212

13.6 小结 212

13.7 练习 213

第三部分 高级概念

第14章 引用计数 216

14.1 问题 216

14.2 引用计数 217

14.3 接受对象 219

14.4 所有权 221

14.5 dealloc 222

14.6 返回对象 223

14.6.1 autorelease 224

14.6.2 自动释放池 224

14.6.3 管理自动释放池 225

14.6.4 回顾简便构造函数 226

14.6.5 自动释放和iphone 226

14.6.6 使用额外的自动释放池来控制内存使用 226

14.7 retaincount 227

14.8 多线程 228

14.9 何时引用计数不好 229

14.10 保留循环 230

14.11 最后说再见:曲终人散时 233

14.12 小结 233

14.13 练习 234

第15章 垃圾收集 236

15.1 垃圾收集:理论 236

15.2 垃圾收集:实践 237

15.3 使用垃圾收集器 238

15.4 终结器 240

15.5 malloc和垃圾收集 241

15.6 core foundation对象和垃圾收集 241

15.7 过程中的一些难点 242

15.7.1 appkit中的透明指针问题 242

15.7.2 内部指针 245

15.7.3 错误的根对象 246

15.8 垃圾收集的优点和缺点 246

15.8.1 积极方面 246

15.8.2 消极方面 246

15.8.3 应该使用垃圾收集吗 246

15.9 小结 247

15.10 练习 247

第16章 块 251

16.1 函数指针 251

16.1.1 用函数指针调用一个函数 253

16.1.2 使用函数指针 253

16.2 使用函数指针的问题 255

16.3 nsinvocation 256

16.4 块 258

16.4.1 块指针 258

16.4.2 访问变量 259

16.4.3 块变量 261

16.4.4 块是基于栈的 261

16.4.5 全局块 262

16.4.6 块是objective-c对象 262

16.4.7 复制块 262

16.4.8 块的内存管理 263

16.4.9 陷阱 265

16.4.10 cocoa中的块 266

16.4.11 样式问题 269

16.5 一些原理上的限制 270

16.6 小结 270

16.7 练习 270

第四部分 附录

附录a 保留字和编译器指令 274

附录b 自由转换类 275

附录c 32位和64位 276

附录d 运行时,旧的和新的 279

附录e objective-c的资源 282