网站颜色:

ObjectiveC编程全解(第3版) ObjectiveC基础教程 ObjectiveC开发入门教程 新iOS系统版本ObjectiveC程序设计书籍.

  • 产品名称:Objective-C编程全解
  • 是否是套装:否
  • 书名:Objective-C编程全解
  • 定价:79.00元
  • 出版社名称:人民邮电出版社
  • 出版时间:2015年1月
  • 作者:(日)荻原刚志著唐璐翟俊杰译
  • 作者地区:日本
  • 译者:唐璐 翟俊杰
  • 开本:16开
  • 书名:Objective-C编程全解

基本信息

 

作者: (日)荻原刚志   

译者: 唐璐 翟俊杰

丛书名: 图灵程序设计丛书

出版社:人民邮电出版社

ISBN(咨询特价)

出版日期:2015 年1月

开本:16开

页码:460

版次:1-1

所属分类: 计算机

定价:(咨询特价)

 

目录

 

《Objective-C编程全解(第3版)》 

第1章 面向对象的编程 1 

1.1 对象的概念 2 

1.1.1 面向功能的软件设计的局限性 2 

1.1.2 面向对象的模块化 2 

1.1.3 消息传递 3 

1.1.4 模块的抽象化 4 

1.1.5 对象的属性 5 

专栏 面向对象的方方面面 5 

1.1.6 类 6 

专栏 Cocoa和Objective-C的历史 8 

1.2 模块和对象 8 

1.2.1 软件模块 8 

1.2.2 高独立性的模块 9 

1.2.3 模块的信息隐蔽 9 

1.2.4 类的定义和接口 10 

1.2.5 消息发送的实现 10 

专栏 C语言的新标准 11 

第2章 Objective-C程序设计 13 

2.1 对象和消息 14 

2.1.1 消息表达式 14 

2.1.2 消息选择器 15 

2.1.3 实例变量的生成和初始化 16 

2.2 类的定义 17 

2.2.1 类的接口声明 17 

专栏 各种各样的布尔类型 18 

专栏 不指定方法的返回值 18 

2.2.2 类的实现 19 

2.2.3 一个遥控器的例子 19 

2.3 编译 21 

2.3.1 简单的编译方法 21 

2.3.2 多文件编译 23 

2.4 程序的书写风格 24 

2.4.1 混合编程 24 

2.4.2 C语言函数的使用方法 25 

2.4.3 静态变量的定义 26 

2.4.4 头文件的引入 26 

专栏 参考文档和SDK 27 

专栏 Xcode的安装 28 

第3章 类和继承 29 

3.1 继承的概念 30 

3.1.1 父类和子类 30 

3.1.2 类的层次结构 31 

3.2 利用继承定义新类 32 

3.2.1 继承的定义 32 

3.2.2 类定义和头文件 33 

3.2.3 继承和方法调用 34 

3.2.4 调用父类的方法 34 

3.2.5 初始化方法的定义 35 

3.3 使用继承的程序示例 36 

3.3.1 追加新方法的例子 36 

3.3.2 方法重写的例子 37 

3.4 继承和方法调用 38 

3.4.1 使用self调用方法 38 

3.4.2 使用super调用方法 39 

3.4.3 测试程序 40 

3.5 方法定义时的注意事项 41 

3.5.1 局部方法 41 

3.5.2 指定初始化方法 42 

专栏 Objective-C与开源软件 44 

第4章 对象的类型和动态绑定 45 

4.1 动态绑定 46 

4.1.1 什么是动态绑定 46 

4.1.2 多态 47 

4.2 作为类型的类 48 

4.2.1 把类作为一种类型 48 

4.2.2 空指针nil 49 

专栏 关系表达式 50 

4.2.3 静态类型检查 51 

4.2.4 静态类型检查的总结 53 

4.3 编程中的类型定义 54 

4.3.1 签名不一致时的情况 54 

专栏 重载 55 

4.3.2 类的前置声明 56 

4.3.3 强制类型转换的使用示例 57 

4.4 实例变量的数据封装 58 

4.4.1 实例变量的访问权限 58 

4.4.2 访问器 60 

4.4.3 实例变量的可见性 61 

4.4.4 在实现部分中定义实例变量 62 

4.5 类对象 63 

4.5.1 什么是类对象 63 

4.5.2 类对象的类型 64 

4.5.3 类方法的定义 65 

4.5.4 类变量 65 

4.5.5 类对象的初始化 66 

4.5.6 初始化方法的返回值 68 

第5章 基于引用计数的内存管理 69 

5.1 动态内存管理 70 

5.1.1 内存管理的必要性 70 

5.1.2 引用计数、自动引用计数和自动垃圾回收 70 

5.2 手动引用计数内存管理 71 

5.2.1 引用计数 71 

5.2.2 测试引用计数的例子 73 

5.2.3 释放对象的方法 74 

5.2.4 访问方法和对象所有权 75 

专栏 静态对象 75 

5.2.5 自动释放 76 

5.2.6 使用自动释放池时需要注意的地方 77 

5.2.7 临时对象的生成 77 

5.2.8 运行回路和自动释放池 78 

5.2.9 常量对象 78 

专栏 常量修饰符const 79 

5.3 分数计算器的例子 80 

5.3.1 分数类Faction 80 

5.3.2 保存计算结果的FracRegister类 83 

5.3.3 主函数和执行示例 85 

5.4 ARC概要 88 

5.4.1 什么是ARC 88 

5.4.2 禁止调用引用计数的相关函数 89 

5.4.3 管理自动释放池的新语法 90 

5.4.4 变量的初始值 90 

5.4.5 方法族 90 

5.4.6 方法dealloc的定义 92 

5.4.7 使用ARC的程序的编译 93 

5.4.8 ARC的基本注意事项 94 

5.4.9 使用ARC重构分数计算器 94 

5.5 循环引用和弱引用 95 

5.5.1 循环引用 95 

5.5.2 所有权和对象间的关系 96 

5.5.3 弱引用 97 

5.5.4 自动nil化的弱引用 98 

5.5.5 对象之间引用关系的基本原则 99 

5.6 ARC编程时其他一些注意事项 100 

5.6.1 可以像通常的指针一样使用的对象 100 

5.6.2 setter方法的注意事项 101 

5.6.3 通过函数的参数返回结果对象 102 

5.6.4 C语言数组保存Objective-C对象 103 

5.6.5 ARC对结构体的一些限制 105 

5.6.6 提示编译器进行特别处理 106 

第6章 垃圾回收 107 

6.1 垃圾回收的概要 108 

6.1.1 查找不再使用的对象 108 

6.1.2 编程时的注意事项 109 

6.1.3 垃圾收集器 110 

6.1.4 finalize方法的定义 111 

6.1.5 编译时的设定 112 

6.1.6 引用计数管理方式中方法的处理 113 

6.1.7 使用垃圾回收编程小结 114 

6.2 垃圾回收的详细功能 114 

6.2.1 分代垃圾回收 114 

6.2.2 弱引用 115 

6.2.3 自动nil化 115 

6.2.4 通过垃圾回收回收动态分配的内存 116 

6.2.5 _ _strong修饰符的使用方法 117 

6.2.6 NSGarbageCollector类 117 

6.2.7 实时API 118 

6.3 内存管理方式的比较 119 

6.3.1 引用计数和垃圾回收 119 

6.3.2 更改内存管理方式 120 

6.3.3 各种内存管理方式的比较 120 

第7章 属性声明 123 

7.1 属性是什么 124 

7.1.1 使用属性编程 124 

7.1.2 属性的概念 125 

专栏 内省 125 

7.2 属性的声明和功能 126 

7.2.1 显式声明属性 126 

7.2.2 属性的实现 127 

7.2.3 @synthesize和实例变量 129 

7.2.4 通过@synthesize生成实例变量 130 

7.2.5 给属性指定选项 131 

7.2.6 赋值时的选项 132 

7.2.7 原子性 134 

7.2.8 属性声明和继承 135 

7.2.9 方法族和属性的关系 135 

7.3 通过点操作符访问属性 136 

7.3.1 点操作符的使用方法 136 

7.3.2 复杂的点操作符的使用方法 137 

7.3.3 何时使用点操作符 139 

第8章 类NSObject和运行时系统 141 

8.1 类NSObject 142 

8.1.1 根类的作用 142 

8.1.2 类和实例 142 

8.1.3 实例对象的生成和释放 143 

8.1.4 初始化 144 

8.1.5 对象的比较 144 

8.1.6 对象的内容描述 145 

8.2 消息发送机制 145 

8.2.1 选择器和SEL类型 145 

8.2.2 消息搜索 146 

8.2.3 以函数的形式来调用方法 147 

专栏 函数指针 148 

8.2.4 对self进行赋值 149 

8.2.5 发送消息的速度 149 

8.2.6 类对象和根类 152 

8.2.7 Target-action paradigm 153 

8.2.8 Xcode中的动作方法和Outlet的写法 155 

8.3 Objective-C和Cocoa环境 156 

8.3.1 cocoa环境和Mac OS X 156 

8.3.2 Cocoa Touch和iOS 156 

8.3.3 框架 157 

8.3.4 框架的构成和头文件 157 

8.4 全新的运行时系统 159 

8.4.1 对64位的对应和现代运行时系统 159 

8.4.2 数据模型 159 

8.4.3 64位模型和整数类型 159 

8.4.4 Core Graphics的浮点数类型 160 

8.4.5 健壮实例变量 161 

专栏 条件编译 162 

第9章 Foundation框架中常用的类 163 

9.1 对象的可变性 164 

9.1.1 可变对象和不可变对象 164 

9.1.2 可变对象的生成 165 

9.2 字符串类NSString 166 

9.2.1 常量字符串 166 

9.2.2 NSString 167 

9.2.3 NSMutableString 174 

9.3 NSData 176 

9.3.1 NSData 176 

9.3.2 NSMutableData 178 

9.4 数组类 179 

9.4.1 NSArray 179 

9.4.2 NSMutableArray 183 

9.4.3 数组对象的所有权 184 

9.4.4 快速枚举 185 

9.4.5 枚举器NSEnumerator 186 

9.4.6 快速枚举和枚举器 187 

9.4.7 集合类 188 

9.5 词典类 189 

9.5.1 NSDictionary 191 

9.5.2 NSMutableDicitionary 193 

9.6 包裹类 194 

9.6.1 NSNumber 194 

9.6.2 NSValue 196 

9.6.3 类型编码和@encode() 196 

9.6.4 NSNull 197 

9.7 NSURL 198 

9.7.1 关于URL 198 

9.7.2 NSURL的概要 199 

9.7.3 使用NSURL来访问资源 201 

第10章 范畴 203 

10.1 范畴 204 

10.1.1 范畴 204 

10.1.2 范畴和文件的组织 205 

10.1.3 作为子模块的范畴 206 

10.1.4 方法的前向声明 207 

10.1.5 私有方法 208 

10.1.6 类扩展 209 

10.1.7 范畴和属性声明 210 

10.2 给现有类追加范畴 211 

10.2.1 追加新的方法 211 

10.2.2 追加方法的例子 212 

专栏 可变参数的方法的定义 213 

10.2.3 覆盖已有的方法 214 

10.3 关联引用 215 

10.3.1 关联引用的概念 215 

10.3.2 添加和检索关联 215 

10.3.3 对象的存储方法 216 

10.3.4 断开关联 217 

10.3.5 利用范畴的例子 217 

第11章 抽象类和类簇 221 

11.1 抽象类 222 

11.1.1 什么是抽象类 222 

11.1.2 抽象类的例子 223 

11.2 类簇 228 

11.2.1 类簇的概念 228 

11.2.2 测试程序 229 

11.2.3 编程中的注意事项 230 

11.3 生成类簇的子类 231 

11.3.1 使用范畴 231 

11.3.2 基本方法的重定义 231 

11.3.3 生成字符串的子类 233 

第12章 协议 235 

12.1 协议的概念 236 

12.1.1 什么是协议 236 

12.1.2 对象的协议 236 

12.2 Objective-C中协议的声明 238 

12.2.1 协议的声明 238 

12.2.2 协议的采用 239 

12.2.3 协议的继承 240 

12.2.4 指定协议的类型声明 240 

12.2.5 协议的前置声明 241 

12.2.6 协议适用性检查 241 

12.2.7 必选功能和可选功能 242 

12.2.8 使用协议的程序示例 242 

专栏 类的多重继承 245 

12.3 非正式协议 246 

12.3.1 什么是非正式协议 246 

12.3.2 非正式协议的用途 246 

专栏 使用宏(macro)来区分系统版本的差异 247 

第13章 对象的复制及存储 249 

13.1 对象的复制 250 

13.1.1 浅复制和深复制 250 

13.1.2 区域 251 

13.1.3 复制方法的定义 251 

13.1.4 复制方法的例子 252 

13.1.5 实现可变复制 254 

13.2 归档 255 

13.2.1 对象的归档 255 

13.2.2 Foundation框架的归档功能 255 

13.2.3 归档方法的定义 256 

13.2.4 归档的方法定义 257 

13.2.5 归档和解档的初始化方法 258 

13.3 属性表 259 

13.3.1 属性表概况 259 

13.3.2 ASCII码格式属性表 260 

13.3.3 XML格式属性表 261 

13.3.4 属性表的变换和检查 261 

第14章 块对象 263 

14.1 什么是块对象 264 

14.1.1 C编译器和GCD 264 

14.1.2 块对象的定义 264 

14.1.3 块对象和类型声明 266 

14.1.4 块对象中的变量行为 267 

14.1.5 排序函数和块对象 269 

14.2 块对象的构成 271 

14.2.1 块对象的实例和周期 271 

14.2.2 应该避免的编码模式 273 

14.2.3 块对象的复制 273 

14.2.4 指定特殊变量_ _block 274 

14.3 Objective-C和块对象 276 

14.3.1 方法定义和块对象 276 

14.3.2 作为Objective-C对象的块对象 276 

14.3.3 ARC和块对象 277 

14.3.4 对象内变量的行为 277 

14.3.5 集合类中添加的方法 279 

14.3.6 在窗体中使用块对象 280 

14.3.7 ARC中使用块对象时的注意事项 281 

第15章 消息发送模式 283 

15.1 应用和运行回路 284 

15.1.1 运行回路 284 

15.1.2 定时器对象 285 

15.1.3 消息的延迟执行 286 

15.2 委托 286 

15.2.1 委托的概念 286 

15.2.2 Cocoa环境中的委托 287 

15.2.3 委托的设置和协议 288 

15.2.4 使用委托的程序 289 

15.3 通知 289 

15.3.1 通知和通知中心的概念 289 

15.3.2 通知对象 290 

15.3.3 通知中心 291 

15.3.4 通知队列 293 

专栏 通知名或异常名的定义 294 

15.4 反应链 294 

15.4.1 反应链概述 294 

15.4.2 应用中的反应链 295 

15.5 消息转送 296 

15.5.1 消息转送的构成 296 

15.5.2 消息转送需要的信息 296 

15.5.3 消息转送的定义 297 

15.5.4 禁止使用消息 298 

15.5.5 程序示例 298 

15.6 撤销构造 300 

15.6.1 撤销构造的概念 300 

15.6.2 在撤销管理器中记录操作 301 

第16章 应用的构造 303 

16.1 应用束 304 

16.1.1 应用束的构造 304 

16.1.2 nib文件和各语言资源 305 

专栏 指定语言和地区 305 

16.1.3 信息文件的主要内容 306 

16.1.4 通过NSBundle访问资源 308 

16.1.5 iOS中资源的访问 310 

16.1.6 通用二进制 311 

16.2 加载nib文件 312 

16.2.1 nib文件实例化 312 

16.2.2 在Mac OS X中加载nib文件 313 

16.2.3 在iOS中加载nib文件 313 

16.2.4 nib文件内的包含循环 314 

16.2.5 nib文件内对象的初始化 314 

16.2.6 启动应用 314 

16.3 iOS的文件保存场所 316 

16.3.1 主要目录及功能 316 

16.3.2 获取目录路径 317 

16.4 用户默认 317 

16.4.1 保存设定值 317 

16.4.2 默认域 318 

16.4.3 查找用户默认的工具 319 

16.4.4 NSUserDefaults概要 319 

16.5 应用的本地化 321 

16.5.1 消息的本地化 321 

16.5.2 本地化指针 322 

专栏 本地化应用名 323 

16.5.3 本地化 323 

专栏 消息内的语序 324 

16.6 模块的动态加载 324 

16.6.1 可加载束 325 

16.6.2 使用可加载束的程序 325 

16.6.3 插件概述 326 

专栏 沙盒(App Sandbox) 327 

第17章 实例:简单图像视图 329 

17.1 Application框架和Interface Builder 330 

17.2 程序概况 330 

17.2.1 对象间的关系 330 

17.2.2 通知 331 

17.2.3 撤销和重做 332 

17.2.4 可加载束和本地化 332 

17.2.5 用户默认 332 

17.3 编程介绍 333 

17.3.1 main函数和MyViewerCtrl类 333 

17.3.2 类WinCtr 336 

17.3.3 类MyInspector 341 

17.4 应用束的组织 345 

17.4.1 创建编译和设置文件 345 

17.4.2 程序运行例子 346 

17.4.3 GUI定义文件和程序 347 

专栏 Objective-C调试器的功能 349 

第18章 异常和错误 351 

18.1 异常 352 

18.1.1 异常处理的概念 352 

18.1.2 Objective-C中的异常处理 352 

18.2 异常处理机制概述 353 

18.2.1 异常句柄和异常处理域 353 

18.2.2 异常表示类NSException 353 

18.2.3 异常处理机制的语法 354 

18.2.4 简单的异常处理的示例程序 355  

专栏 日志输出函数NSLog() 356 

18.3 异常的发生和传播 357 

18.3.1 异常的传播 357 

18.3.2 自己触发异常 357 

18.3.3 用 @throw语法产生异常 357 

18.3.4 @catch 的特殊语法 358 

18.3.5 异常传播和 @finally 358 

18.3.6 异常处理程序的注意点 359 

18.4 断言 360 

18.4.1 断言是什么 360 

18.4.2 断言宏 361  

专栏 包含可变个数的参数的宏 361 

18.5 错误处理 362 

18.5.1 错误处理结构的目的 362 

18.5.2 表示错误的类 NSError的使用方法 362 

18.5.3 获取错误对象的信息 364 

18.5.4 生成自定义错误对象 364 

18.6 错误反应链 366 

18.6.1 错误反应链的结构 366 

18.6.2 错误对象的更改和恢复 367  

专栏 单测试 369 

第 19章 并行编程 371 

19.1 多线程 372 

19.1.1 线程的基本概念 372 

19.1.2 线程安全 372 

19.1.3 注意点 373 

19.1.4 使用 NSThread创建线程 373 

19.1.5 当前线程 374 

19.1.6 GUI应用和线程 374 

19.2 互斥 375 

19.2.1 需要互斥的例子 375 

19.2.2 锁 376 

19.2.3 死锁 377 

19.2.4 尝试获得锁 378 

19.2.5 条件锁 378 

19.2.6 NSRecursiveLock 379 

19.2.7 @synchronized 379 

19.3 操作对象和并行处理 380 

19.3.1 新的并行处理程序 380 

19.3.2 使用NSOperation的处理概述 381 

19.3.3 NSOperation和NSOperationQueue的简单用法 382 

19.3.4 等待至聚合任务终止 383 

19.3.5 使用操作对象的简单例子 383 

19.3.6 NSInvocationOperation的使用方法 385 

19.3.7 NSBlockOperation 的使用方法 385 

19.3.8 NSBlockOperation中添加多个块对象 386 

19.3.9 设置任务间的依赖 386 

19.3.10 任务的优先级设置 388 

19.3.11 设定最大并行任务数 388 

19.3.12 终止任务 389 

19.3.13 设置队列调度为中断状态 389 

19.4 并行处理的示例程序 390 

19.4.1 程序概要 390 

19.4.2 类BrowsingViewerCtrl 390 

19.4.3 类BrowsingWinCtrl 392 

19.4.4 类DrawOperation 394 

19.4.5 其他改变 396 

19.5 使用连接的通信 397 

19.5.1 连接 398 

19.5.2 代理 398 

19.5.3 方法的指针参数 399 

19.5.4 对象的副本传递 400 

19.5.5 异步通信 401 

19.5.6 设置协议 401 

19.5.7 运行回路的开始 402 

19.5.8 收发消息时的处理 402 

19.5.9 线程间连接 404 

19.5.10 进程间连接 406 

19.5.11 进程间连接的例子 407 

第20章 键值编码 411 

20.1 键值编码概况 412 

20.1.1 什么是键值编码 412 

20.1.2 键值编码的基本处理 412 

20.2 访问属性 414 

20.2.1 键值编码的方法的行为 414 

20.2.2 属性值的自动转换 415 

20.2.3 字典对象和键值编码 416 

20.2.4 根据键路径进行访问 416 

20.2.5 一对一关系和一对多关系 417 

20.2.6 数组对象和键值编码 419 

20.3 一对多关系的访问 420 

20.3.1 带索引的访问器模式 420 

20.3.2 一对多关系的可变访问 421 

20.4 KVC标准 422 

20.4.1 验证属性值 422 

20.4.2 键值编码的准则 423 

20.5 键值观察 424 

20.5.1 键值观察的基础 424 

20.5.2 示例程序 426 

20.5.3 一对多关系的属性监视 429 

20.5.4 依赖键的登记 429 

20.6 Cocoa绑定概述 430 

20.6.1 目标-行为-模式的弱点 430 

20.6.2 什么是Cocoa绑定 430 

20.6.3 Cocoa绑定所需的方法 431 

20.6.4 例题:绘制二次函数图的软件 432 

20.6.5 自定义视图的方法定义 434 

内容简介

 

    书籍

    计算机书籍

《Objective-C编程全解(第3版)》结合理论知识和实例程序,全面而系统地介绍了Objective-C编程的相关内容,包括类和继承、对象的类型和动态绑定、基于引用计数的内存管理、垃圾回收、属性声明、类NSObject和运行时系统、Foundation框架中常用的类、范畴、抽象类与类簇、对象的复制及存储、块对象、消息发送模式、图像视图、异常和错误、并行编程、键值编码等。

《Objective-C编程全解(第3版)》适合iOS应用和Mac OS X开发初学者系统入门、有经验的开发者深入理解语言本质,也适合开发团队负责人、项目负责人作为综合性的Objective-C参考书阅读。

热门设计服务