Objective-C应用开发全程实录

Objective-C应用开发全程实录
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-02
版次: 01
ISBN: 9787115437204
定价: 99.00
装帧: 平装
开本: 16开
页数: 634页
正文语种: 简体中文
12人买过
  • 本书共32章,循序渐进地讲解了Objective-C开发iOS应用程序的基本知识。本书从搭建开发环境讲起,依次讲解了Objective-C的基础,如常量、变量和数据类型,运算符和表达式,选择结构,循环结构;Objective-C的高级知识,如类、对象和方法、继承、多态、动态类型和异常处理;Objective-C的实战技术,如Foundation框架类详解,日期、时间、复制和谓词,文件操作,Xcode Interface Builder界面开发,使用Xcode编写MVC程序,基础控件,Web视图控件,可滚动视图控件和翻页控件,提醒、操作表和表视图,活动指示器、进度条和检索条,UIView和视图控制器,图形、图像、图层和动画,多媒体应用,定位处理,触摸、手势识别和Force Touch,Touch ID,游戏开发等。本书内容全面,几乎涵盖了Objective-C语言的核心语法知识和开发iOS应用程序所需要的主要技术,全书内容言简意赅,讲解方法通俗易懂,特别适合于初学者学习。
    本书适合Objective-C初学者、Objective-C开发人员、iOS初学者、iOS程序员、iPhone开发人员、iPad开发人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。 计算机科学技术学院硕士,通信工程博士,精通Java、C语言、C++程序开发,擅长底层技术和应用程序的结合。熟悉Android和iOS系统,有丰富的Android和iOS开发经验。 第一篇 基础知识
    第1章 认识“进步”最快的Objective-C语言 2
    1.1 最耀眼的新星 2
    1.1.1 一份统计数据 2
    1.1.2 Objective-C的走红过程 3
    1.1.3 究竟何为Objective-C 3
    1.1.4 苹果公司选择Objective-C的原因 3
    1.2 Objective-C的优点和缺点 4
    1.3 搭建Objective-C开发环境 5
    1.3.1 Xcode介绍 5
    1.3.2 下载Xcode7 6
    1.3.3 安装Xcode 7 6
    1.3.4 创建iOS 9项目并启动模拟器 8
    1.3.5 打开现有的iOS 9项目 9
    1.4 第一段Objective-C程序 11
    1.4.1 使用Xcode编辑代码 11
    1.4.2 注释 14
    1.4.3 #import指令 15
    1.4.4 主函数 16
    1.5 Xcode集成开发环境介绍 17
    1.5.1 基本面板 17
    1.5.2 Xcode 7的基本操作 22
    1.5.3 使用Xcode 7帮助系统 29
    第二篇 核心语法
    第2章 常量、变量和数据类型 32
    2.1 标识符和关键字 32
    2.2 数据类型和常量 33
    2.2.1 整数类型 33
    2.2.2 float类型和double类型 35
    2.2.3 char类型 36
    2.2.4 字符常量 37
    2.2.5 id类型 39
    2.2.6 限定词 40
    2.2.7 基本数据类型小结 41
    2.2.8 NSLog函数 42
    2.3 变量 43
    2.3.1 定义变量 43
    2.3.2 统一定义变量 45
    2.4 字符串 46
    第3章 运算符和表达式 47
    3.1 运算符的种类 47
    3.2 算术表达式 47
    3.2.1 初步了解运算符的优先级 47
    3.2.2 整数运算和一元负号运算符 49
    3.2.3 模运算符 50
    3.2.4 整型值和浮点值的相互转换 51
    3.2.5 类型转换运算符 51
    3.2.6 常量表达式 52
    3.3 条件运算符 53
    3.4 sizeof运算符 54
    3.5 关系运算符 54
    3.6 强制类型转换运算符 55
    3.7 赋值运算符 56
    3.7.1 基本赋值运算符 57
    3.7.2 高级赋值运算符 57
    3.7.3 通过计算器类演示运算符的用法 57
    3.8 位运算符 59
    3.8.1 按位与运算符 59
    3.8.2 按位或运算符 59
    3.8.3 按位异或运算符 60
    3.8.4 求反运算符 60
    3.8.5 向左移位运算符 61
    3.8.6 向右移位运算符 61
    3.8.7 头文件 62
    3.9 逻辑运算符 62
    3.10 逗号运算符 63
    3.11 运算符小结 64
    第4章 选择结构 66
    4.1 顺序结构和选择结构 66
    4.2 if语句 66
    4.2.1 单分支结构 67
    4.2.2 双分支结构 69
    4.2.3 复合条件测试 70
    4.2.4 if语句的嵌套 72
    4.2.5 else if结构 74
    4.3 switch语句 79
    4.3.1 switch语句基础 79
    4.3.2 任何两种情况的值都不能相同 80
    4.3.3 switch语句小结 81
    第5章 循环结构 82
    5.1 语句 82
    5.2 流程控制介绍 82
    5.3 for循环语句 83
    5.3.1 for循环基础 83
    5.3.2 for语句的执行步骤 86
    5.3.3 让for循环执行适当的次数 88
    5.3.4 for循环嵌套 89
    5.3.5 for循环的其他用法 90
    5.4 while语句 91
    5.4.1 基本while语句 91
    5.4.2 算法在编程中的意义 93
    5.4.3 while语句的陷阱 94
    5.4.4 do-while语句 95
    5.5 break语句 96
    5.6 continue语句 97
    5.7 goto语句 98
    5.8 空语句 99
    5.9 return语句 100
    5.10 Boolean变量 100
    第三篇 面向对象
    第6章 面向对象——类、对象和方法 104
    6.1 面向对象介绍 104
    6.2 对象建模技术 105
    6.2.1 功能模型 105
    6.2.2 对象模型 105
    6.2.3 动态模型 106
    6.3 类的基础知识 106
    6.3.1 类和实例 106
    6.3.2 方法 106
    6.3.3 实例和方法 107
    6.3.4 认识Objective-C中的类 107
    6.4 使用@interface定义类 108
    6.4.1 设置科学的类名 109
    6.4.2 实例变量 110
    6.5 使用@implementation声明成员 111
    6.6 program具体实现部分 112
    6.7 类的使用 113
    6.7.1 类的初始化 114
    6.7.2 使用类实例 115
    6.7.3 使用类的好处 116
    6.8 类的高级应用 117
    6.8.1 访问实例变量并封装数据 118
    6.8.2 尽量分离接口和实现文件 119
    6.9 隐藏和封装 122
    6.9.1 什么是封装 122
    6.9.2 访问控制符 123
    6.9.3 合成存取器方法 125
    6.9.4 使用点运算符访问属性 125
    6.10 多参方法 126
    6.10.1 不带参数名的方法 128
    6.10.2 操作分数 128
    6.11 局部变量 129
    6.11.1 方法的参数 129
    6.11.2 static关键字 130
    6.11.3 self关键字 131
    6.12 在方法中分配和返回对象 131
    第7章 面向对象——继承 135
    7.1 从根类谈起 135
    7.1.1 继承的好处 135
    7.1.2 继承的使用 137
    7.1.3 进一步理解继承的概念 137
    7.1.4 重写方法 139
    7.2 方法重载 141
    7.2.1 方法重载基础 141
    7.2.2 重载的作用 142
    7.2.3 选择正确的方法 143
    7.2.4 重载dealloc方法 144
    7.2.5 使用super关键字 145
    7.2.6 连续继承 147
    7.3 通过继承添加新的实例变量 147
    7.4 调用动态方法 148
    7.5 访问控制 150
    7.6 Category类别 151
    第8章 多态、动态类型和异常处理 154
    8.1 多态 154
    8.1.1 多态基础 154
    8.1.2 实现多态 156
    8.1.3 指针变量的强制类型转换 159
    8.1.4 判断指针变量的实际类型 160
    8.2 动态绑定和id类型 161
    8.2.1 id类型的优势 161
    8.2.2 与C#的比较说明 162
    8.2.3 编译时和运行时检查 162
    8.2.4 id数据类型与静态类型 163
    8.2.5 动态类型的参数和返回类型 163
    8.2.6 处理动态类型的方法 164
    8.3 异常处理 166
    8.3.1 用@try处理异常 166
    8.3.2 使用@finally回收资源 168
    8.3.3 自定义异常类 169
    8.3.4 和C++异常处理进行比较 170
    第9章 类别、协议和合成对象 172
    9.1 类别 172
    9.1.1 定义类别 172
    9.1.2 类别的使用 174
    9.1.3 用类别实现模块化设计 175
    9.1.4 使用类别调用私有方法 179
    9.1.5 扩展 179
    9.2 协议 181
    9.2.1 使用类别实现非正式协议 181
    9.2.2 定义正式协议 183
    9.2.3 遵守(实现)协议 185
    9.2.4 协议和委托 187
    9.3 合成对象 190
    第10章 预处理程序 194
    10.1 宏定义 194
    10.1.1 无参宏定义 194
    10.1.2 带参宏定义 196
    10.1.3 #define语句的作用 199
    10.1.4 高级类型定义 200
    10.1.5 #运算符 202
    10.1.6 ##运算符 203
    10.2 #import语句 203
    10.3 条件编译 205
    10.3.1 #ifdef、#endif、#else和#ifndef语句 205
    10.3.2 #if和#elif预处理程序语句 206
    第11章 深入理解变量和数据类型 208
    11.1 内存布局 208
    11.2 自动变量 208
    11.3 外部变量 209
    11.4 作用域 210
    11.4.1 控制实例变量作用域的指令 210
    11.4.2 外部变量 210
    11.4.3 静态变量 212
    11.4.4 选择局部变量和全局变量 213
    11.4.5 复合语句和作用域 213
    11.5 存储类说明符 214
    11.5.1 auto 214
    11.5.2 const 214
    11.5.3 volatile 215
    11.5.4 static 216
    11.5.5 extern 216
    11.6 枚举数据类型 216
    11.7 typedef语句 218
    第四篇 知识进阶
    第12章 Foundation框架类详解 222
    12.1 数字对象 222
    12.2 字符串处理 224
    12.2.1 创建字符串对象 225
    12.2.2 可变对象与不可变对象 227
    12.2.3 可变字符串 231
    12.2.4 释放字符串对象 233
    12.3 数组对象 235
    12.3.1 数组的存储 235
    12.3.2 数组的比较机制 238
    12.3.3 调用数组元素 239
    12.3.4 操作数组对象 240
    12.3.5 返回操作并生成访问器方法 242
    12.3.6 枚举操作 244
    12.3.7 使用枚举遍历查询信息 246
    12.3.8 删除信息 248
    12.3.9 数组排序 250
    12.3.10 KVC和KVO开发 254
    12.4 字典对象 255
    12.4.1 NSDictionary功能介绍 255
    12.4.2 创建可变字典 256
    12.4.3 枚举字典 257
    12.5 集合对象 258
    12.5.1 NSSet类介绍 260
    12.5.2 重复判断操作 262
    12.5.3 NSMutableSet可编辑集合 263
    12.5.4 NSCountedSet状态集合 264
    12.5.5 有序集合 265
    第13章 日期、时间、复制和谓词 267
    13.1 赋值和复制 267
    13.2 copy方法和mutableCopy方法的使用 267
    13.3 浅复制和深复制 270
    13.3.1 独立副本 271
    13.3.2 复制的应用 271
    13.4 使用alloc+init...方式实现复制 273
    13.5 NSCopyObject()的使用 273
    13.6 用自定义类实现复制 274
    13.7 用赋值方法和取值方法复制对象 276
    13.8 复制可变和不可变对象 277
    13.9 使用setter方法复制 278
    13.10 谓词 278
    13.10.1 创建谓词 279
    13.10.2 用谓词过滤集合 279
    13.10.3 在谓词中使用格式说明符 280
    13.11 日期和时间处理 281
    13.12 日期格式器 282
    13.13 日历和日期组件 284
    第14章 和C语言同质化的数据类型(上) 286
    14.1 数组 286
    14.1.1 一维数组 286
    14.1.2 二维数组 288
    14.1.3 显式初始化二维数组 289
    14.1.4 多维数组的定义 291
    14.1.5 多维数组的初始化 292
    14.1.6 字符数组 294
    14.2 函数 297
    14.2.1 函数的种类 297
    14.2.2 定义函数 299
    14.2.3 函数的声明 299
    14.2.4 函数原型 301
    14.2.5 函数的参数 301
    14.2.6 返回值 303
    14.2.7 声明返回类型和参数类型 304
    14.2.8 调用函数 305
    14.2.9 函数的嵌套调用和递归调用 305
    14.2.10 数组作为函数的参数 307
    14.2.11 内部函数和外部函数 309
    14.3 变量的作用域和生存期 310
    14.3.1 变量的作用域 310
    14.3.2 静态存储变量和动态存储变量 313
    14.4 结构体 314
    14.4.1 结构体基础 314
    14.4.2 结构体变量的初始化 318
    14.4.3 结构体数组 322
    14.4.4 结构体和函数 324
    14.4.5 结构体中的结构体 325
    14.4.6 位字段 326
    14.4.7 typedef 327
    第15章 和C语言同质化的数据类型(下) 328
    15.1 指针 328
    15.1.1 指针基础 328
    15.1.2 指针变量的运算 331
    15.1.3 指针变量作为函数参数 334
    15.1.4 指针和数组 335
    15.1.5 指针和多维数组 339
    15.1.6 指针和字符串 341
    15.1.7 指针数组和多级指针 346
    15.1.8 指针函数和函数指针 348
    15.1.9 结构体指针 352
    15.2 共用体 354
    15.2.1 定义共用体类型和共用体变量 354
    15.2.2 引用共用体变量 355
    15.3 块 357
    15.3.1 块的基本语法 357
    15.3.2 块和局部变量 358
    15.3.3 用typedef定义块类型 359
    第16章 文件操作 361
    16.1 Foundation框架的文件操作 361
    16.2 用NSFileManager管理文件和目录 361
    16.2.1 NSFileManager基础 362
    16.2.2 访问文件属性和内容 365
    16.2.3 使用NSData类 366
    16.2.4 创建、删除、移动和复制文件 367
    16.2.5 目录操作 367
    16.2.6 枚举目录中的内容 369
    16.2.7 查看目录的内容 371
    16.3 路径操作类 372
    16.3.1 常用的路径处理方法 374
    16.3.2 复制文件 375
    16.3.3 使用NSProcessInfo获取进程信息 377
    16.4 用NSFileHandle实现文件I/O操作 378
    16.5 使用NSURL读取网络资源 380
    16.6 使用NSBundle处理项目资源 382
    第17章 归档 384
    17.1 使用XML属性列表进行归档 384
    17.2 使用NSKeyedArchiver归档 385
    17.3 NSCoding协议 388
    17.4 编码方法和解码方法 389
    17.5 使用NSData创建自定义文档 390
    17.6 使用归档程序复制对象 391
    17.7 归档总结 392
    第五篇 核心组件
    第18章 Xcode IB界面开发 396
    18.1 IB基础 396
    18.2 和IB密切相关的库面板 398
    18.3 IB采用的方法 399
    18.4 IB中的故事板 399
    18.4.1 推出的背景 400
    18.4.2 故事板的文档大纲 400
    18.4.3 文档大纲的区域对象 401
    18.5 创建界面 402
    18.5.1 对象库 402
    18.5.2 将对象加入到视图中 403
    18.5.3 使用IB布局工具 404
    18.6 定制界面外观 406
    18.6.1 属性检查器的使用 406
    18.6.2 设置辅助功能属性 407
    18.6.3 测试界面 408
    18.7 iOS 9控件的属性 408
    18.8 实战演练——将界面的控件连接到代码 409
    18.8.1 打开项目 409
    18.8.2 输出口和操作 410
    18.8.3 创建到输出口的连接 410
    18.8.4 创建到操作的连接 412
    18.9 实战演练——纯代码实现UI设计 413
    第19章 使用Xcode编写MVC程序 416
    19.1 MVC模式基础 416
    19.1.1 诞生背景 416
    19.1.2 分析结构 416
    19.1.3 MVC的特点 417
    19.1.4 使用MVC实现程序设计的结构化 417
    19.2 Xcode中的MVC 418
    19.2.1 基本原理 418
    19.2.2 MVC的模板 418
    19.3 在Xcode中实现MVC 419
    19.3.1 视图 419
    19.3.2 视图控制器 419
    19.4 数据模型 420
    19.5 实战演练——使用Single View Application模板 421
    19.5.1 创建项目 422
    19.5.2 规划变量和连接 425
    19.5.3 设计界面 426
    19.5.4 创建并连接输出口和操作 427
    19.5.5 实现应用程序逻辑 430
    19.5.6 生成应用程序 431
    第20章 基础控件介绍 432
    20.1 文本框 432
    20.1.1 实战演练——实现用户登录界面 432
    20.1.2 实战演练——限制输入文本的长度 433
    20.2 文本视图 434
    20.2.1 实战演练——拖动输入的文本 434
    20.2.2 实战演练——关闭虚拟键盘的输入动作 435
    20.3 标签 436
    20.3.1 实战演练——使用标签显示一段文本 436
    20.3.2 实战演练——复制标签中的文本 437
    20.4 按钮 439
    20.4.1 实战演练——自定义按钮的图案 440
    20.4.2 实战演练——实现丰富多彩的控制按钮 442
    20.5 滑块控件 443
    20.5.1 实战演练——实现自动显示刻度的滑动条 443
    20.5.2 实战演练——实现带刻度的滑动条 446
    20.6 实战演练——设置指定样式的步进控件 447
    20.7 图像视图控件 451
    20.7.1 实战演练——实现图片浏览器 452
    20.7.2 实战演练——实现幻灯片播放器效果 454
    20.8 开关控件 455
    20.8.1 实战演练——改变开关控件的文本和颜色 455
    20.8.2 实战演练——创建并使用开关控件 457
    20.9 分段控件 458
    20.9.1 实战演练——分段控件的使用 458
    20.9.2 实战演练——使用分段控件控制背景颜色 460
    20.10 工具栏 461
    20.10.1 实战演练——自定义工具栏控件的颜色和样式 461
    20.10.2 实战演练——自定义工具栏 465
    20.11 选择器视图 466
    20.11.1 实战演练——实现两个选择器视图控件间的数据依赖 466
    20.11.2 实战演练——实现单列选择器 468
    20.12 日期选择控件 470
    20.12.1 实战演练——使用日期选择器自动选择时间 470
    20.12.2 实战演练——在屏幕中显示日期选择器 471
    第21章 Web视图控件、可滚动视图控件和翻页控件 473
    21.1 Web视图 473
    21.1.1 实战演练——在Web视图控件中调用JavaScript脚本 473
    21.1.2 实战演练——实现一个迷你浏览器 475
    21.2 可滚动的视图 477
    21.2.1 实战演练——可滚动视图控件的使用 477
    21.2.2 实战演练——通过滚动屏幕的方式浏览信息 478
    21.3 翻页控件 480
    21.3.1 翻页控件基础 480
    21.3.2 实战演练——自定义翻页控件的的外观样式 481
    第22章 提醒、操作表和表视图 483
    22.1 提醒视图 483
    22.1.1 实战演练——自定义提醒控件的外观 483
    22.1.2 实战演练——实现带输入框的提示框 486
    22.2 操作表 488
    22.2.1 实战演练——使用操作表控件定制按钮面板 488
    22.2.2 实战演练——实现图片选择器 489
    22.3 使用表视图 491
    22.3.1 实战演练——拆分表视图 491
    22.3.2 实战演练——实现图文样式联系人列表效果 493
    第23章 活动指示器、进度条和检索控件 495
    23.1 活动指示器 495
    23.1.1 实战演练——实现不同外观的活动指示器 495
    23.1.2 实战演练——实现环形进度条效果 496
    23.2 进度条 498
    23.2.1 实战演练——自定义外观样式的进度条 498
    23.2.2 实战演练——实现多个具有动态条纹背景的进度条 501
    23.3 检索条 504
    23.3.1 实战演练——使用检索控件快速搜索信息 504
    23.3.2 实战演练——使用UISearchDisplayController实现搜索功能 507
    第24章 UIView和视图控制器详解 510
    24.1 UIView基础 510
    24.1.1 UIView的结构 510
    24.1.2 视图架构 512
    24.1.3 实战演练——给任意UIView视图的4条边框加上阴影 513
    24.2 实战演练——使用导航控制器手动旋转屏幕 515
    24.3 使用UINavigationController 517
    24.3.1 UINavigationController详解 517
    24.3.2 实战演练——实现界面导航条功能 518
    24.4 选项卡栏控制器 521
    24.4.1 实战演练——使用动态单元格定制表格行 521
    24.4.2 实战演练——使用Segue实现过渡效果 523
    第25章 UICollectionView和UIVisualEffectView控件 525
    25.1 UICollectionView控件详解 525
    25.1.1 UICollectionView的构成 525
    25.1.2 实现简单的UICollectionView 526
    25.1.3 自定义UICollectionViewLayout 529
    25.1.4 实战演练——使用UICollectionView控件实现网格效果 529
    25.2 UIVisualEffectView控件详解 532
    25.2.1 UIVisualEffectView基础 532
    25.2.2 使用VisualEffectView控件实现模糊特效 534
    25.2.3 使用VisualEffectView实现Vibrancy效果 534
    25.2.4 实战演练——在屏幕中实现模糊效果 536
    第六篇 典型应用
    第26章 图形、图像、图层和动画 540
    26.1 图形处理 540
    26.1.1 实战演练——在屏幕中绘制三角形 540
    26.1.2 实战演练——绘制几何图形 542
    26.2 图像处理 543
    26.2.1 实战演练——在屏幕中绘制图像 544
    26.2.2 实战演练——实现对图片的旋转和缩放 545
    26.3 图层 545
    26.3.1 视图和图层 546
    26.3.2 实战演练——实现图片、文字及其翻转效果 546
    26.4 实现动画 547
    26.4.1 实战演练——使用动画样式显示电量使用情况 547
    26.4.2 实战演练——使用属性动画 550
    第27章 多媒体应用 553
    27.1 访问声音服务 553
    27.1.1 声音服务基础 553
    27.1.2 实战演练——播放声音文件 554
    27.2 提醒和振动 557
    27.2.1 播放提醒音 558
    27.2.2 实战演练——使用iOS的提醒功能 558
    27.3 Media Player框架 566
    27.3.1 Media Player框架中的类 567
    27.3.2 实战演练——使用Media Player播放视频 567
    27.4 AV Foundation框架 570
    27.4.1 准备工作 571
    27.4.2 实战演练——使用AV Foundation框架播放视频 571
    27.5 图像选择器 574
    27.5.1 使用图像选择器 574
    27.5.2 实战演练——获取图片并缩放 575
    第28章 定位处理 580
    28.1 Core Location框架 580
    28.1.1 Core Location基础 580
    28.1.2 使用流程 580
    28.2 获取位置 582
    28.2.1 位置管理器委托 583
    28.2.2 获取航向 584
    28.3 地图功能 585
    28.3.1 Map Kit基础 585
    28.3.2 为地图添加标注 586
    28.4 实战演练——定位当前的位置信息 587
    第29章 触摸、手势识别和Force Touch 590
    29.1 多点触摸和手势识别基础 590
    29.2 触摸处理 590
    29.2.1 触摸事件和视图 591
    29.2.2 iOS中的手势操作 595
    29.2.3 实战演练——触摸的方式移动视图 596
    29.3 手势处理 597
    29.4 Force Touch技术 602
    29.4.1 Force Touch介绍 602
    29.4.2 Force Touch API介绍 603
    29.4.3 实战演练——使用Force Touch 604
    第30章 Touch ID详解 607
    30.1 初步认识Touch ID 607
    30.2 开发Touch ID应用程序 609
    30.2.1 Touch ID的官方资料 609
    30.2.2 实战演练——Touch ID认证综合应用 609
    第31章 游戏开发 616
    31.1 Sprite Kit框架基础 616
    31.1.1 Sprite Kit的优点和缺点 616
    31.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 616
    31.2 实战演练——开发一个Sprite Kit游戏程序 617
    第七篇 综合实战
    第32章 房屋出租管理系统的开发 628
    32.1 系统功能介绍 628
    32.2 具体实现 628
    32.2.1 实现接口文件 628
    32.2.2 实现系统主界面 631
    32.2.3 实现用户登录界面 633
  • 内容简介:
    本书共32章,循序渐进地讲解了Objective-C开发iOS应用程序的基本知识。本书从搭建开发环境讲起,依次讲解了Objective-C的基础,如常量、变量和数据类型,运算符和表达式,选择结构,循环结构;Objective-C的高级知识,如类、对象和方法、继承、多态、动态类型和异常处理;Objective-C的实战技术,如Foundation框架类详解,日期、时间、复制和谓词,文件操作,Xcode Interface Builder界面开发,使用Xcode编写MVC程序,基础控件,Web视图控件,可滚动视图控件和翻页控件,提醒、操作表和表视图,活动指示器、进度条和检索条,UIView和视图控制器,图形、图像、图层和动画,多媒体应用,定位处理,触摸、手势识别和Force Touch,Touch ID,游戏开发等。本书内容全面,几乎涵盖了Objective-C语言的核心语法知识和开发iOS应用程序所需要的主要技术,全书内容言简意赅,讲解方法通俗易懂,特别适合于初学者学习。
    本书适合Objective-C初学者、Objective-C开发人员、iOS初学者、iOS程序员、iPhone开发人员、iPad开发人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
  • 作者简介:
    计算机科学技术学院硕士,通信工程博士,精通Java、C语言、C++程序开发,擅长底层技术和应用程序的结合。熟悉Android和iOS系统,有丰富的Android和iOS开发经验。
  • 目录:
    第一篇 基础知识
    第1章 认识“进步”最快的Objective-C语言 2
    1.1 最耀眼的新星 2
    1.1.1 一份统计数据 2
    1.1.2 Objective-C的走红过程 3
    1.1.3 究竟何为Objective-C 3
    1.1.4 苹果公司选择Objective-C的原因 3
    1.2 Objective-C的优点和缺点 4
    1.3 搭建Objective-C开发环境 5
    1.3.1 Xcode介绍 5
    1.3.2 下载Xcode7 6
    1.3.3 安装Xcode 7 6
    1.3.4 创建iOS 9项目并启动模拟器 8
    1.3.5 打开现有的iOS 9项目 9
    1.4 第一段Objective-C程序 11
    1.4.1 使用Xcode编辑代码 11
    1.4.2 注释 14
    1.4.3 #import指令 15
    1.4.4 主函数 16
    1.5 Xcode集成开发环境介绍 17
    1.5.1 基本面板 17
    1.5.2 Xcode 7的基本操作 22
    1.5.3 使用Xcode 7帮助系统 29
    第二篇 核心语法
    第2章 常量、变量和数据类型 32
    2.1 标识符和关键字 32
    2.2 数据类型和常量 33
    2.2.1 整数类型 33
    2.2.2 float类型和double类型 35
    2.2.3 char类型 36
    2.2.4 字符常量 37
    2.2.5 id类型 39
    2.2.6 限定词 40
    2.2.7 基本数据类型小结 41
    2.2.8 NSLog函数 42
    2.3 变量 43
    2.3.1 定义变量 43
    2.3.2 统一定义变量 45
    2.4 字符串 46
    第3章 运算符和表达式 47
    3.1 运算符的种类 47
    3.2 算术表达式 47
    3.2.1 初步了解运算符的优先级 47
    3.2.2 整数运算和一元负号运算符 49
    3.2.3 模运算符 50
    3.2.4 整型值和浮点值的相互转换 51
    3.2.5 类型转换运算符 51
    3.2.6 常量表达式 52
    3.3 条件运算符 53
    3.4 sizeof运算符 54
    3.5 关系运算符 54
    3.6 强制类型转换运算符 55
    3.7 赋值运算符 56
    3.7.1 基本赋值运算符 57
    3.7.2 高级赋值运算符 57
    3.7.3 通过计算器类演示运算符的用法 57
    3.8 位运算符 59
    3.8.1 按位与运算符 59
    3.8.2 按位或运算符 59
    3.8.3 按位异或运算符 60
    3.8.4 求反运算符 60
    3.8.5 向左移位运算符 61
    3.8.6 向右移位运算符 61
    3.8.7 头文件 62
    3.9 逻辑运算符 62
    3.10 逗号运算符 63
    3.11 运算符小结 64
    第4章 选择结构 66
    4.1 顺序结构和选择结构 66
    4.2 if语句 66
    4.2.1 单分支结构 67
    4.2.2 双分支结构 69
    4.2.3 复合条件测试 70
    4.2.4 if语句的嵌套 72
    4.2.5 else if结构 74
    4.3 switch语句 79
    4.3.1 switch语句基础 79
    4.3.2 任何两种情况的值都不能相同 80
    4.3.3 switch语句小结 81
    第5章 循环结构 82
    5.1 语句 82
    5.2 流程控制介绍 82
    5.3 for循环语句 83
    5.3.1 for循环基础 83
    5.3.2 for语句的执行步骤 86
    5.3.3 让for循环执行适当的次数 88
    5.3.4 for循环嵌套 89
    5.3.5 for循环的其他用法 90
    5.4 while语句 91
    5.4.1 基本while语句 91
    5.4.2 算法在编程中的意义 93
    5.4.3 while语句的陷阱 94
    5.4.4 do-while语句 95
    5.5 break语句 96
    5.6 continue语句 97
    5.7 goto语句 98
    5.8 空语句 99
    5.9 return语句 100
    5.10 Boolean变量 100
    第三篇 面向对象
    第6章 面向对象——类、对象和方法 104
    6.1 面向对象介绍 104
    6.2 对象建模技术 105
    6.2.1 功能模型 105
    6.2.2 对象模型 105
    6.2.3 动态模型 106
    6.3 类的基础知识 106
    6.3.1 类和实例 106
    6.3.2 方法 106
    6.3.3 实例和方法 107
    6.3.4 认识Objective-C中的类 107
    6.4 使用@interface定义类 108
    6.4.1 设置科学的类名 109
    6.4.2 实例变量 110
    6.5 使用@implementation声明成员 111
    6.6 program具体实现部分 112
    6.7 类的使用 113
    6.7.1 类的初始化 114
    6.7.2 使用类实例 115
    6.7.3 使用类的好处 116
    6.8 类的高级应用 117
    6.8.1 访问实例变量并封装数据 118
    6.8.2 尽量分离接口和实现文件 119
    6.9 隐藏和封装 122
    6.9.1 什么是封装 122
    6.9.2 访问控制符 123
    6.9.3 合成存取器方法 125
    6.9.4 使用点运算符访问属性 125
    6.10 多参方法 126
    6.10.1 不带参数名的方法 128
    6.10.2 操作分数 128
    6.11 局部变量 129
    6.11.1 方法的参数 129
    6.11.2 static关键字 130
    6.11.3 self关键字 131
    6.12 在方法中分配和返回对象 131
    第7章 面向对象——继承 135
    7.1 从根类谈起 135
    7.1.1 继承的好处 135
    7.1.2 继承的使用 137
    7.1.3 进一步理解继承的概念 137
    7.1.4 重写方法 139
    7.2 方法重载 141
    7.2.1 方法重载基础 141
    7.2.2 重载的作用 142
    7.2.3 选择正确的方法 143
    7.2.4 重载dealloc方法 144
    7.2.5 使用super关键字 145
    7.2.6 连续继承 147
    7.3 通过继承添加新的实例变量 147
    7.4 调用动态方法 148
    7.5 访问控制 150
    7.6 Category类别 151
    第8章 多态、动态类型和异常处理 154
    8.1 多态 154
    8.1.1 多态基础 154
    8.1.2 实现多态 156
    8.1.3 指针变量的强制类型转换 159
    8.1.4 判断指针变量的实际类型 160
    8.2 动态绑定和id类型 161
    8.2.1 id类型的优势 161
    8.2.2 与C#的比较说明 162
    8.2.3 编译时和运行时检查 162
    8.2.4 id数据类型与静态类型 163
    8.2.5 动态类型的参数和返回类型 163
    8.2.6 处理动态类型的方法 164
    8.3 异常处理 166
    8.3.1 用@try处理异常 166
    8.3.2 使用@finally回收资源 168
    8.3.3 自定义异常类 169
    8.3.4 和C++异常处理进行比较 170
    第9章 类别、协议和合成对象 172
    9.1 类别 172
    9.1.1 定义类别 172
    9.1.2 类别的使用 174
    9.1.3 用类别实现模块化设计 175
    9.1.4 使用类别调用私有方法 179
    9.1.5 扩展 179
    9.2 协议 181
    9.2.1 使用类别实现非正式协议 181
    9.2.2 定义正式协议 183
    9.2.3 遵守(实现)协议 185
    9.2.4 协议和委托 187
    9.3 合成对象 190
    第10章 预处理程序 194
    10.1 宏定义 194
    10.1.1 无参宏定义 194
    10.1.2 带参宏定义 196
    10.1.3 #define语句的作用 199
    10.1.4 高级类型定义 200
    10.1.5 #运算符 202
    10.1.6 ##运算符 203
    10.2 #import语句 203
    10.3 条件编译 205
    10.3.1 #ifdef、#endif、#else和#ifndef语句 205
    10.3.2 #if和#elif预处理程序语句 206
    第11章 深入理解变量和数据类型 208
    11.1 内存布局 208
    11.2 自动变量 208
    11.3 外部变量 209
    11.4 作用域 210
    11.4.1 控制实例变量作用域的指令 210
    11.4.2 外部变量 210
    11.4.3 静态变量 212
    11.4.4 选择局部变量和全局变量 213
    11.4.5 复合语句和作用域 213
    11.5 存储类说明符 214
    11.5.1 auto 214
    11.5.2 const 214
    11.5.3 volatile 215
    11.5.4 static 216
    11.5.5 extern 216
    11.6 枚举数据类型 216
    11.7 typedef语句 218
    第四篇 知识进阶
    第12章 Foundation框架类详解 222
    12.1 数字对象 222
    12.2 字符串处理 224
    12.2.1 创建字符串对象 225
    12.2.2 可变对象与不可变对象 227
    12.2.3 可变字符串 231
    12.2.4 释放字符串对象 233
    12.3 数组对象 235
    12.3.1 数组的存储 235
    12.3.2 数组的比较机制 238
    12.3.3 调用数组元素 239
    12.3.4 操作数组对象 240
    12.3.5 返回操作并生成访问器方法 242
    12.3.6 枚举操作 244
    12.3.7 使用枚举遍历查询信息 246
    12.3.8 删除信息 248
    12.3.9 数组排序 250
    12.3.10 KVC和KVO开发 254
    12.4 字典对象 255
    12.4.1 NSDictionary功能介绍 255
    12.4.2 创建可变字典 256
    12.4.3 枚举字典 257
    12.5 集合对象 258
    12.5.1 NSSet类介绍 260
    12.5.2 重复判断操作 262
    12.5.3 NSMutableSet可编辑集合 263
    12.5.4 NSCountedSet状态集合 264
    12.5.5 有序集合 265
    第13章 日期、时间、复制和谓词 267
    13.1 赋值和复制 267
    13.2 copy方法和mutableCopy方法的使用 267
    13.3 浅复制和深复制 270
    13.3.1 独立副本 271
    13.3.2 复制的应用 271
    13.4 使用alloc+init...方式实现复制 273
    13.5 NSCopyObject()的使用 273
    13.6 用自定义类实现复制 274
    13.7 用赋值方法和取值方法复制对象 276
    13.8 复制可变和不可变对象 277
    13.9 使用setter方法复制 278
    13.10 谓词 278
    13.10.1 创建谓词 279
    13.10.2 用谓词过滤集合 279
    13.10.3 在谓词中使用格式说明符 280
    13.11 日期和时间处理 281
    13.12 日期格式器 282
    13.13 日历和日期组件 284
    第14章 和C语言同质化的数据类型(上) 286
    14.1 数组 286
    14.1.1 一维数组 286
    14.1.2 二维数组 288
    14.1.3 显式初始化二维数组 289
    14.1.4 多维数组的定义 291
    14.1.5 多维数组的初始化 292
    14.1.6 字符数组 294
    14.2 函数 297
    14.2.1 函数的种类 297
    14.2.2 定义函数 299
    14.2.3 函数的声明 299
    14.2.4 函数原型 301
    14.2.5 函数的参数 301
    14.2.6 返回值 303
    14.2.7 声明返回类型和参数类型 304
    14.2.8 调用函数 305
    14.2.9 函数的嵌套调用和递归调用 305
    14.2.10 数组作为函数的参数 307
    14.2.11 内部函数和外部函数 309
    14.3 变量的作用域和生存期 310
    14.3.1 变量的作用域 310
    14.3.2 静态存储变量和动态存储变量 313
    14.4 结构体 314
    14.4.1 结构体基础 314
    14.4.2 结构体变量的初始化 318
    14.4.3 结构体数组 322
    14.4.4 结构体和函数 324
    14.4.5 结构体中的结构体 325
    14.4.6 位字段 326
    14.4.7 typedef 327
    第15章 和C语言同质化的数据类型(下) 328
    15.1 指针 328
    15.1.1 指针基础 328
    15.1.2 指针变量的运算 331
    15.1.3 指针变量作为函数参数 334
    15.1.4 指针和数组 335
    15.1.5 指针和多维数组 339
    15.1.6 指针和字符串 341
    15.1.7 指针数组和多级指针 346
    15.1.8 指针函数和函数指针 348
    15.1.9 结构体指针 352
    15.2 共用体 354
    15.2.1 定义共用体类型和共用体变量 354
    15.2.2 引用共用体变量 355
    15.3 块 357
    15.3.1 块的基本语法 357
    15.3.2 块和局部变量 358
    15.3.3 用typedef定义块类型 359
    第16章 文件操作 361
    16.1 Foundation框架的文件操作 361
    16.2 用NSFileManager管理文件和目录 361
    16.2.1 NSFileManager基础 362
    16.2.2 访问文件属性和内容 365
    16.2.3 使用NSData类 366
    16.2.4 创建、删除、移动和复制文件 367
    16.2.5 目录操作 367
    16.2.6 枚举目录中的内容 369
    16.2.7 查看目录的内容 371
    16.3 路径操作类 372
    16.3.1 常用的路径处理方法 374
    16.3.2 复制文件 375
    16.3.3 使用NSProcessInfo获取进程信息 377
    16.4 用NSFileHandle实现文件I/O操作 378
    16.5 使用NSURL读取网络资源 380
    16.6 使用NSBundle处理项目资源 382
    第17章 归档 384
    17.1 使用XML属性列表进行归档 384
    17.2 使用NSKeyedArchiver归档 385
    17.3 NSCoding协议 388
    17.4 编码方法和解码方法 389
    17.5 使用NSData创建自定义文档 390
    17.6 使用归档程序复制对象 391
    17.7 归档总结 392
    第五篇 核心组件
    第18章 Xcode IB界面开发 396
    18.1 IB基础 396
    18.2 和IB密切相关的库面板 398
    18.3 IB采用的方法 399
    18.4 IB中的故事板 399
    18.4.1 推出的背景 400
    18.4.2 故事板的文档大纲 400
    18.4.3 文档大纲的区域对象 401
    18.5 创建界面 402
    18.5.1 对象库 402
    18.5.2 将对象加入到视图中 403
    18.5.3 使用IB布局工具 404
    18.6 定制界面外观 406
    18.6.1 属性检查器的使用 406
    18.6.2 设置辅助功能属性 407
    18.6.3 测试界面 408
    18.7 iOS 9控件的属性 408
    18.8 实战演练——将界面的控件连接到代码 409
    18.8.1 打开项目 409
    18.8.2 输出口和操作 410
    18.8.3 创建到输出口的连接 410
    18.8.4 创建到操作的连接 412
    18.9 实战演练——纯代码实现UI设计 413
    第19章 使用Xcode编写MVC程序 416
    19.1 MVC模式基础 416
    19.1.1 诞生背景 416
    19.1.2 分析结构 416
    19.1.3 MVC的特点 417
    19.1.4 使用MVC实现程序设计的结构化 417
    19.2 Xcode中的MVC 418
    19.2.1 基本原理 418
    19.2.2 MVC的模板 418
    19.3 在Xcode中实现MVC 419
    19.3.1 视图 419
    19.3.2 视图控制器 419
    19.4 数据模型 420
    19.5 实战演练——使用Single View Application模板 421
    19.5.1 创建项目 422
    19.5.2 规划变量和连接 425
    19.5.3 设计界面 426
    19.5.4 创建并连接输出口和操作 427
    19.5.5 实现应用程序逻辑 430
    19.5.6 生成应用程序 431
    第20章 基础控件介绍 432
    20.1 文本框 432
    20.1.1 实战演练——实现用户登录界面 432
    20.1.2 实战演练——限制输入文本的长度 433
    20.2 文本视图 434
    20.2.1 实战演练——拖动输入的文本 434
    20.2.2 实战演练——关闭虚拟键盘的输入动作 435
    20.3 标签 436
    20.3.1 实战演练——使用标签显示一段文本 436
    20.3.2 实战演练——复制标签中的文本 437
    20.4 按钮 439
    20.4.1 实战演练——自定义按钮的图案 440
    20.4.2 实战演练——实现丰富多彩的控制按钮 442
    20.5 滑块控件 443
    20.5.1 实战演练——实现自动显示刻度的滑动条 443
    20.5.2 实战演练——实现带刻度的滑动条 446
    20.6 实战演练——设置指定样式的步进控件 447
    20.7 图像视图控件 451
    20.7.1 实战演练——实现图片浏览器 452
    20.7.2 实战演练——实现幻灯片播放器效果 454
    20.8 开关控件 455
    20.8.1 实战演练——改变开关控件的文本和颜色 455
    20.8.2 实战演练——创建并使用开关控件 457
    20.9 分段控件 458
    20.9.1 实战演练——分段控件的使用 458
    20.9.2 实战演练——使用分段控件控制背景颜色 460
    20.10 工具栏 461
    20.10.1 实战演练——自定义工具栏控件的颜色和样式 461
    20.10.2 实战演练——自定义工具栏 465
    20.11 选择器视图 466
    20.11.1 实战演练——实现两个选择器视图控件间的数据依赖 466
    20.11.2 实战演练——实现单列选择器 468
    20.12 日期选择控件 470
    20.12.1 实战演练——使用日期选择器自动选择时间 470
    20.12.2 实战演练——在屏幕中显示日期选择器 471
    第21章 Web视图控件、可滚动视图控件和翻页控件 473
    21.1 Web视图 473
    21.1.1 实战演练——在Web视图控件中调用JavaScript脚本 473
    21.1.2 实战演练——实现一个迷你浏览器 475
    21.2 可滚动的视图 477
    21.2.1 实战演练——可滚动视图控件的使用 477
    21.2.2 实战演练——通过滚动屏幕的方式浏览信息 478
    21.3 翻页控件 480
    21.3.1 翻页控件基础 480
    21.3.2 实战演练——自定义翻页控件的的外观样式 481
    第22章 提醒、操作表和表视图 483
    22.1 提醒视图 483
    22.1.1 实战演练——自定义提醒控件的外观 483
    22.1.2 实战演练——实现带输入框的提示框 486
    22.2 操作表 488
    22.2.1 实战演练——使用操作表控件定制按钮面板 488
    22.2.2 实战演练——实现图片选择器 489
    22.3 使用表视图 491
    22.3.1 实战演练——拆分表视图 491
    22.3.2 实战演练——实现图文样式联系人列表效果 493
    第23章 活动指示器、进度条和检索控件 495
    23.1 活动指示器 495
    23.1.1 实战演练——实现不同外观的活动指示器 495
    23.1.2 实战演练——实现环形进度条效果 496
    23.2 进度条 498
    23.2.1 实战演练——自定义外观样式的进度条 498
    23.2.2 实战演练——实现多个具有动态条纹背景的进度条 501
    23.3 检索条 504
    23.3.1 实战演练——使用检索控件快速搜索信息 504
    23.3.2 实战演练——使用UISearchDisplayController实现搜索功能 507
    第24章 UIView和视图控制器详解 510
    24.1 UIView基础 510
    24.1.1 UIView的结构 510
    24.1.2 视图架构 512
    24.1.3 实战演练——给任意UIView视图的4条边框加上阴影 513
    24.2 实战演练——使用导航控制器手动旋转屏幕 515
    24.3 使用UINavigationController 517
    24.3.1 UINavigationController详解 517
    24.3.2 实战演练——实现界面导航条功能 518
    24.4 选项卡栏控制器 521
    24.4.1 实战演练——使用动态单元格定制表格行 521
    24.4.2 实战演练——使用Segue实现过渡效果 523
    第25章 UICollectionView和UIVisualEffectView控件 525
    25.1 UICollectionView控件详解 525
    25.1.1 UICollectionView的构成 525
    25.1.2 实现简单的UICollectionView 526
    25.1.3 自定义UICollectionViewLayout 529
    25.1.4 实战演练——使用UICollectionView控件实现网格效果 529
    25.2 UIVisualEffectView控件详解 532
    25.2.1 UIVisualEffectView基础 532
    25.2.2 使用VisualEffectView控件实现模糊特效 534
    25.2.3 使用VisualEffectView实现Vibrancy效果 534
    25.2.4 实战演练——在屏幕中实现模糊效果 536
    第六篇 典型应用
    第26章 图形、图像、图层和动画 540
    26.1 图形处理 540
    26.1.1 实战演练——在屏幕中绘制三角形 540
    26.1.2 实战演练——绘制几何图形 542
    26.2 图像处理 543
    26.2.1 实战演练——在屏幕中绘制图像 544
    26.2.2 实战演练——实现对图片的旋转和缩放 545
    26.3 图层 545
    26.3.1 视图和图层 546
    26.3.2 实战演练——实现图片、文字及其翻转效果 546
    26.4 实现动画 547
    26.4.1 实战演练——使用动画样式显示电量使用情况 547
    26.4.2 实战演练——使用属性动画 550
    第27章 多媒体应用 553
    27.1 访问声音服务 553
    27.1.1 声音服务基础 553
    27.1.2 实战演练——播放声音文件 554
    27.2 提醒和振动 557
    27.2.1 播放提醒音 558
    27.2.2 实战演练——使用iOS的提醒功能 558
    27.3 Media Player框架 566
    27.3.1 Media Player框架中的类 567
    27.3.2 实战演练——使用Media Player播放视频 567
    27.4 AV Foundation框架 570
    27.4.1 准备工作 571
    27.4.2 实战演练——使用AV Foundation框架播放视频 571
    27.5 图像选择器 574
    27.5.1 使用图像选择器 574
    27.5.2 实战演练——获取图片并缩放 575
    第28章 定位处理 580
    28.1 Core Location框架 580
    28.1.1 Core Location基础 580
    28.1.2 使用流程 580
    28.2 获取位置 582
    28.2.1 位置管理器委托 583
    28.2.2 获取航向 584
    28.3 地图功能 585
    28.3.1 Map Kit基础 585
    28.3.2 为地图添加标注 586
    28.4 实战演练——定位当前的位置信息 587
    第29章 触摸、手势识别和Force Touch 590
    29.1 多点触摸和手势识别基础 590
    29.2 触摸处理 590
    29.2.1 触摸事件和视图 591
    29.2.2 iOS中的手势操作 595
    29.2.3 实战演练——触摸的方式移动视图 596
    29.3 手势处理 597
    29.4 Force Touch技术 602
    29.4.1 Force Touch介绍 602
    29.4.2 Force Touch API介绍 603
    29.4.3 实战演练——使用Force Touch 604
    第30章 Touch ID详解 607
    30.1 初步认识Touch ID 607
    30.2 开发Touch ID应用程序 609
    30.2.1 Touch ID的官方资料 609
    30.2.2 实战演练——Touch ID认证综合应用 609
    第31章 游戏开发 616
    31.1 Sprite Kit框架基础 616
    31.1.1 Sprite Kit的优点和缺点 616
    31.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 616
    31.2 实战演练——开发一个Sprite Kit游戏程序 617
    第七篇 综合实战
    第32章 房屋出租管理系统的开发 628
    32.1 系统功能介绍 628
    32.2 具体实现 628
    32.2.1 实现接口文件 628
    32.2.2 实现系统主界面 631
    32.2.3 实现用户登录界面 633
查看详情
相关图书 / 更多
Objective-C应用开发全程实录
ObjectiveIELTSAdvancedSelfStudyStudent'sBook[WithCDROM]
Michael Black 著
Objective-C应用开发全程实录
Observatory Mansions A Novel
Carey;Edward
Objective-C应用开发全程实录
Objectivity
Lorraine Daston 著
Objective-C应用开发全程实录
ObservationalCinema:Anthropology,Film,andtheExplorationofSocialLife
Anna Grimshaw 著
Objective-C应用开发全程实录
Objectives and Key Results Driving Focus, Alignment, and Engagement with OKRs
Niven;Paul R.;Lamorte;Ben
Objective-C应用开发全程实录
Obama:APromiseofChange
David Mendell 著
Objective-C应用开发全程实录
ObjectiveCAEStudent'sBook
Felicity O'Dell 著
Objective-C应用开发全程实录
Obstetrics:NormalandProblemPregnancies,6thEdition(ObstetricsNormalandProblemPreqnancies)
Steven G. Gabbe、Jennifer R. Niebyl、Henry L. Galan 著
Objective-C应用开发全程实录
ObjectiveIeltsAdvancedStudent'sBook[WithCDROM]
Annette Capel 著
Objective-C应用开发全程实录
Obi-Wan'sFoe
Jane Mason、Sarah Stephens、Tommy Lee Edwards 著
Objective-C应用开发全程实录
ObjectiveKET
Annette Capel 著
Objective-C应用开发全程实录
ObjectiveIeltsIntermediateSelfStudyStudent'sBook[WithCDROM]
Michael Black 著
您可能感兴趣 / 更多