具体描述
本书由浅入深,全面、系统地介绍了Objective-C开发技术。本书最大的特色就是提供了大量的插图,一改过去编程书籍只有枯燥乏味的文字讲解,利用各种说明插图和运行结果示意图,生动形象地再现了Objective-C开发需要的所有知识,使读者能够轻松地掌握学习内容。另外,作者专门为每一章编写了一些习题,以便读者对该章的学习水平进行检测。
本书涉及面广,从基础的理论到语法,再到高级的应用,几乎涉及Objective-C语言的所有重点知识。本书适合想全面学习Objective-C语言的人员阅读,也适合各种使用Objective-C语言进行开发的工程技术人员使用。对经常使用Objective-C语言进行开发的人员,更是一本不可多得的案头必备参考书。
作者简介
目录信息
第1章 第一个Objective-C程序 2
1.1 Objective-C开发概述 2
1.1.1 Objective-C的发展史 2
1.1.2 Objective-C的特点 3
1.2 构建开发环境 4
1.2.1 Objective-C开发环境的安装条件 4
1.2.2 VirtualBox下载和安装 5
1.2.3 虚拟机的建立 7
1.2.4 设置虚拟机 10
1.2.5 安装系统 11
1.2.6 进入界面 11
1.2.7 下载和安装Xcode 16
1.3 “Hello World!”程序 20
1.3.1 创建Hello Objective-C项目 20
1.3.2 编译、链接及运行 22
1.4 Objective-C代码认识 24
1.4.1 查看源文件 24
1.4.2 Objective-C程序的结构 25
1.4.3 注释 25
1.4.4 标识符 26
1.5 小结 28
1.6 习题 28
第2章 数据类型 30
2.1 数 30
2.1.1 二进制数 30
2.1.2 十进制数 31
2.1.3 八进制数 32
2.1.4 十六进制数 33
2.1.5 各进制之间的转换 34
2.2 数据类型 34
2.2.1 整数类型 34
2.2.2 实型数据 36
2.2.3 字符型 37
2.2.4 数据类型的输出 40
2.2.5 Objective-C特有的数据类型 40
2.3 变量和常量 40
2.3.1 变量 41
2.3.2 常量 43
2.4 小结 45
2.5 习题 45
第3章 语句 48
3.1 语句的构成 48
3.2 运算符及表达式 49
3.2.1 算术运算符及表达式 49
3.2.2 自增自减运算符 51
3.2.3 位运算符 52
3.2.4 赋值运算符及表达式 55
3.2.5 关系运算符及表达式 59
3.2.6 条件运算符 60
3.2.7 布尔逻辑运算符及表达式 62
3.2.8 逗号运算符及表达式 64
3.2.9 求字节数运算符 65
3.2.10 特殊的运算符 66
3.2.11 运算符的优先级 67
3.3 类型转换 69
3.3.1 自动转换 69
3.3.2 强制类型转换 71
3.4 语句块 72
3.4.1 语句块的结构 72
3.4.2 作用域 73
3.5 小结 74
3.6 习题 74
第4章 程序控制结构 77
4.1 顺序结构 77
4.2 选择结构 78
4.2.1 条件语句的组成 78
4.2.2 if语句 79
4.2.3 if...else语句 80
4.2.4 if...else...if语句 82
4.2.5 三种if语句的注意事项 84
4.2.6 if语句的嵌套 86
4.2.7 switch语句 87
4.3 循环结构 90
4.3.1 while语句 91
4.3.2 for语句 92
4.3.3 do...while语句 97
4.3.4 三种循环语句的比较 98
4.4 转折语句 99
4.4.1 break语句 99
4.4.2 continue 101
4.4.3 break和continue的比较 101
4.4.4 return语句 102
4.5 小结 102
4.6 习题 103
第5章 函数 105
5.1 函数简介 105
5.2 函数的使用 107
5.2.1 函数的声明 107
5.2.2 函数的定义和调用 107
5.2.3 函数使用中的问题 109
5.2.4 空函数 110
5.3 函数的参数 111
5.3.1 参数 111
5.3.2 有参函数的定义和调用 112
5.3.3 参数的注意事项 113
5.3.4 函数的传递方式 114
5.4 函数的返回值 115
5.4.1 返回某一数据类型的值 115
5.4.2 无返回值 117
5.5 函数的嵌套和递归 117
5.5.1 函数的嵌套 117
5.5.2 函数的递归 119
5.6 小结 120
5.7 习题 120
第二篇 面向对象篇
第6章 面向对象编程 124
6.1 类和对象 124
6.1.1 类的声明和定义 124
6.1.2 实例化对象 126
6.2 实例变量 130
6.2.1 实例变量的定义 130
6.2.2 实例变量的使用 130
6.2.3 实例变量、全局变量和局部变量的区别 131
6.2.4 变量的存储类别 132
6.3 方法 135
6.3.1 方法的声明 135
6.3.2 方法的实现 136
6.3.3 对象方法的使用 136
6.3.4 类方法的使用 138
6.3.5 方法的参数 139
6.4 属性 142
6.4.1 属性的声明和定义 142
6.4.2 带参属性 144
6.4.3 带参属性——setter/getter方法(assign/retain/copy) 144
6.4.4 带参属性——读写属性 148
6.4.5 带参属性——原子修饰 149
6.5 小结 150
6.6 习题 150
第7章 深入面向对象的编程 154
7.1 继承 154
7.1.1 继承的实现 154
7.1.2 实例变量的继承 155
7.1.3 方法的继承 158
7.2 访问限定符 159
7.2.1 @public 159
7.2.2 @protected 161
7.2.3 @private 161
7.2.4 访问限定符的区别 162
7.3 方法重写 163
7.3.1 方法重写的形式 163
7.3.2 super 164
7.4 方法重载 165
7.5 多层继承 166
7.6 多态 169
7.6.1 多态的形式 169
7.6.2 方法的重写实现多态 170
7.6.3 方法的重载实现多态 171
7.7 动态类型和动态绑定 172
7.7.1 动态类型id 172
7.7.2 动态绑定 173
7.8 小结 174
7.9 习题 174
第8章 分类和协议 180
8.1 分类 180
8.1.1 分类的声明 180
8.1.2 分类的定义 180
8.1.3 分类的使用 181
8.1.4 分类的创建 181
8.1.5 分类使用的注意点 183
8.2 协议 185
8.2.1 协议的定义 185
8.2.2 协议的创建 186
8.2.3 协议在类中的声明 187
8.2.4 所用协议声明方法 187
8.2.5 关键字 188
8.2.6 多个协议的使用 192
8.2.7 在协议中使用协议 193
8.2.8 判断协议实现的方法 194
8.2.9 协议的分类 195
8.3 小结 196
8.4 习题 196
第三篇 技术篇
第9章 内存管理 200
9.1 内存管理的基础 200
9.1.1 申请内存(alloc) 200
9.1.2 释放内存(dealloc) 201
9.2 引用计数 204
9.2.1 引用计数和字符串 205
9.2.2 引用计数和实例变量 206
9.3 自动释放池 207
9.3.1 自动释放池 207
9.3.2 建立多个自动释放池 209
9.3.3 引用计数和自动释放池 210
9.4 内存管理规则及内存泄漏 211
9.4.1 内存管理规则 211
9.4.2 内存泄漏 213
9.5 垃圾回收 213
9.6 小结 214
9.7 习题 214
第10章 Foundation框架的基本对象 217
10.1 数字对象 217
10.1.1 数字对象的介绍 217
10.1.2 数字对象的使用 218
10.2 字符串对象 224
10.2.1 字符串和字符的区别 224
10.2.2 不可修改的字符串 225
10.2.3 可修改的字符串 232
10.3 数组对象 235
10.3.1 数组的定义 235
10.3.2 数组的声明 235
10.3.3 数组的引用 237
10.3.4 二维数组的声明和定义 238
10.3.5 二维数组初始化的方法 239
10.3.6 二维数组的引用 240
10.3.7 字符数组的含义 241
10.3.8 字符数组初始化 241
10.3.9 字符数组的引用 241
10.3.10 不可修改的数组 242
10.3.11 可修改的数组 246
10.4 字典对象 251
10.4.1 不可修改的字典 251
10.4.2. 可修改的字典 253
10.5 集合对象 256
10.5.1 不可修改的集合 257
10.5.2 可修改的集合 259
10.6 小结 263
10.7 习题 263
第11章 文件和目录处理 267
11.1 文件的操作 267
11.1.1 创建文件 267
11.1.2 文件的使用 268
11.1.3 对文件数据的操作 274
11.1.4 文件的读写 278
11.2 目录的操作 286
11.2.1 目录的基本操作方法 286
11.2.2 目录的显示 289
11.2.3 临时目录 292
11.2.4 路径 293
11.3 小结 294
11.4 习题 294
第12章 编译预处理 296
12.1 宏定义 296
12.1.1 不带参宏定义 296
12.1.2 带参宏 297
12.1.3 使用宏的注意点 298
12.1.4 宏的取消 299
12.2 文件包含 301
12.3 条件编译 304
12.3.1 #ifdef 304
12.3.2 #ifndef 305
12.3.3 #if 307
12.3.4 编译预处理总结 307
12.4 小结 308
12.5 习题 308
第13章 进程和线程 312
13.1 进程 312
13.1.1 创建进程 312
13.1.2 进程的使用 313
13.1.3 进程方法总结 315
13.2 线程 315
13.2.1 使用NSThread创建线程 316
13.2.2 启动线程 316
13.2.3 访问主线程 318
13.3 互斥锁 318
13.3.1 NSLock 319
13.3.2 @synchronized 320
13.4 进程和线程的区别 321
13.5 小结 322
13.6 习题 322
第14章 归档 324
14.1 XML属性列表 324
14.1.1 使用XML进行数据保存 324
14.1.2 使用XML进行数据读取 326
14.2 NSKeyedArchiver 329
14.2.1 NSKeyedArchive的数据保存 330
14.2.2 NSKeyedArchive的数据读取 331
14.3 编码和解码方法 331
14.3.1 直接进行归档 332
14.3.2 编码方法 333
14.3.3 解码方法 333
14.4 保存多个对象到一个文件 335
14.5 使用归档程序复制对象 337
14.6 小结 337
14.7 习题 338
第15章 错误处理 341
15.1 错误的分类 341
15.2 使用返回值 342
15.3 使用异常处理 342
15.3.1 异常处理的使用 343
15.3.2 捕获不同类型的异常 345
15.3.3 使用异常的注意点 346
15.3.4 抛出异常 348
15.4 使用NSError 349
15.5 小结 350
15.6 习题 351
第16章 时间日期处理 352
16.1 NSDate 352
16.1.1 创建NSDate 352
16.1.2 获取当前的日期 353
16.1.3 获取昨天的日期 353
16.1.4 日期的比较 355
16.1.5 两个日期的时间差 358
16.1.6 时间间隔 358
16.2 使用NSCalendar 359
16.2.1 创建一个给定日期的NSDate对象 359
16.2.2 日期在不同日历间的转换 361
16.2.3 获取日期总的年月日 361
16.3 字符串和日期的相互转化 362
16.3.1 将日期转化为字符串 362
16.3.2 将字符串转化为日期 363
16.4 时区 365
16.5 小结 366
16.6 习题 366
第四篇 iPhone开发入门篇
第17章 iPhone入门 370
17.1 iPhone简介 370
17.1.1 iPhone的发展 370
17.1.2 编写iPhone应用程序和其他程序的不同 371
17.2 第一个“Hello World!”程序 371
17.2.1 创建Hello World项目 371
17.2.2 iPhone Simulator的简介 371
17.2.3 使用Interface Builder 373
17.2.4 编写第一个“Hello World!”程序 376
17.3 小结 378
· · · · · · (收起)
读后感
对于初学者来说,本书正合适,书的内容很新,主要是讲object-c语言的基础。内容通俗易懂,深入浅出,非常精炼,很耐读!推荐初学者购买Objective-c的首选,是入门不错的书籍。本人正在研读。也喜欢这书的风格,一种作者与读者探讨的感觉!
对于初学者来说,本书正合适,书的内容很新,主要是讲object-c语言的基础。内容通俗易懂,深入浅出,非常精炼,很耐读!推荐初学者购买Objective-c的首选,是入门不错的书籍。本人正在研读。也喜欢这书的风格,一种作者与读者探讨的感觉!
对于初学者来说,本书正合适,书的内容很新,主要是讲object-c语言的基础。内容通俗易懂,深入浅出,非常精炼,很耐读!推荐初学者购买Objective-c的首选,是入门不错的书籍。本人正在研读。也喜欢这书的风格,一种作者与读者探讨的感觉!
对于初学者来说,本书正合适,书的内容很新,主要是讲object-c语言的基础。内容通俗易懂,深入浅出,非常精炼,很耐读!推荐初学者购买Objective-c的首选,是入门不错的书籍。本人正在研读。也喜欢这书的风格,一种作者与读者探讨的感觉!
对于初学者来说,本书正合适,书的内容很新,主要是讲object-c语言的基础。内容通俗易懂,深入浅出,非常精炼,很耐读!推荐初学者购买Objective-c的首选,是入门不错的书籍。本人正在研读。也喜欢这书的风格,一种作者与读者探讨的感觉!
用户评价
我拿到这本书,会先浏览一下前言和作者简介。前言通常会阐述作者编写这本书的初衷、目标读者以及书中内容的组织方式。我希望作者能在前言中清晰地说明,这本书究竟是为哪一类读者设计的,以及他们通过阅读这本书能够获得什么样的“突破”。我尤其关注书中是否有强调Objective-C在现代iOS开发中的地位,以及它与Swift的关系。对于我来说,作为一名在职开发者,我希望能够快速地回顾和巩固Objective-C的知识,同时也能学习到一些更高级的应用技巧,以应对日益复杂的项目需求。我还会特别留意书中是否包含对Cocoa Touch框架中一些核心API的深入讲解,例如Core Data、Grand Central Dispatch (GCD)等,以及这些API的最佳实践。光盘中的CD,我期待它能够提供一些实用的开发工具、资源库,或者是一个完整的项目模板,能够让我快速地在项目中应用所学的知识,并在此基础上进行迭代开发。
这本书的扉页和版权页,我通常会留意作者的背景信息,以及是否有提供勘误或更新的官方渠道。对于一本技术书籍来说,作者的经验和声誉往往是质量的重要保证。我希望作者在Objective-C开发领域拥有丰富的实践经验,并且能够将这些经验转化为易于理解的文字和代码。从书名“突破”来看,这本书的目标读者应该不仅仅是初学者,更包括那些希望在Objective-C开发方面有所提升的开发者。因此,我非常期待书中能够包含一些“进阶”的内容,例如Objective-C的高级特性、性能优化技巧、调试方法、以及与Swift的协同开发策略。特别是在内存管理方面,Objective-C的引用计数机制有时会让新手感到困惑,我希望这本书能够提供一些深入且易于理解的讲解,帮助读者彻底掌握ARC。另外,关于Objective-C的性能优化,比如如何识别和解决性能瓶颈,如何编写更高效的代码,这些都是我非常想从书中获取的宝贵信息。光盘中的CD,如果能提供一些性能分析工具的使用指南,或者一些性能调优的案例分析,那就更完美了。
这本书的装帧风格,以及书本封面上传递出的信息,给我留下了深刻的印象。我是一名自由职业者,主要依靠iOS开发来维持生计。在自由职业的道路上,持续学习和提升自己的技能是至关重要的。“突破”这个词,对我来说,意味着要不断地超越过去的自己,掌握新的技术,提高工作效率,从而赢得更多的项目和客户。我尤其希望这本书能够提供一些Objective-C在实际项目中的应用案例,比如如何构建高性能的UI,如何设计可扩展的架构,以及如何进行有效的错误处理和调试。我还会非常关注书中是否包含一些关于Objective-C语言的高级特性,例如Objective-C++、Categories的runtime机制、以及Protocols的深入应用。光盘中的CD,如果能提供一些关于Objective-C性能调优的工具介绍,或者是一些自动化测试的框架指南,那将对我非常有帮助。我希望这本书能够成为我手中的一把利器,助我在Objective-C的开发道路上不断“突破”自我,取得更大的成功。
这本书的出版日期,让我对它的内容新鲜度和适用性有了一定的期待。在快速发展的技术领域,过时的信息往往比没有信息更具误导性。Objective-C作为iOS开发的核心语言之一,虽然Swift已经崭露头角,但仍有大量的存量项目和重要的开发场景依赖于Objective-C。因此,一本能够及时更新,涵盖最新Objective-C语法特性、Cocoa Touch框架重要更新以及相关开发工具(如Xcode)使用技巧的书籍,其价值不言而喻。我尤其关注书中是否会提及ARC(Automatic Reference Counting)的深入理解和优化,以及Objective-C与Swift的互操作性。对于许多从Objective-C转向Swift的开发者,或者需要在两者之间切换的团队来说,掌握这一点至关重要。此外,我还会仔细审视书中关于内存管理、多线程、以及Objective-C中的一些设计模式(如Block、Category、Protocol等)的讲解是否清晰透彻,是否有引入一些现代的、更高效的编程实践。光盘中的资源,如果能包含一些针对最新Xcode版本的示例项目,或者一些自动化构建和测试的脚本,那将是锦上添花。我希望这本书能引导我不仅理解Objective-C的语法,更能掌握其在实际开发中的最佳实践,提升代码质量和开发效率。
这本书的书脊上的文字虽然简洁,但“Objective-C开发速学手册”这几个字,就已经点明了它的定位。我是一名正在准备跳槽的iOS开发者,目前使用的技术栈中,Objective-C仍占有相当大的比重。虽然我熟悉Objective-C的基本语法,但在一些更深层次的理解和实际应用中,我总感觉自己还有提升的空间。我特别希望这本书能够帮助我“突破”那些我平时可能遇到的“模糊地带”,例如Objective-C的KVO(Key-Value Observing)和KVC(Key-Value Coding)的实现原理,以及如何在实际开发中高效地运用它们。我对书中关于Objective-C运行时(Runtime)机制的讲解尤为期待,理解运行时,能够帮助我更深入地理解Objective-C的动态特性,写出更灵活、更具表现力的代码。此外,这本书能否提供一些关于Objective-C代码的性能优化技巧,以及如何在Objective-C项目中引入Swift,实现混合开发,这些都是我非常关心的问题。光盘中的CD,我希望它能包含一些实际项目中的代码片段,甚至是完整的、可执行的DEMO,能够让我看到Objective-C在不同场景下的应用。
这本书的排版和印刷质量,是我关注的另一个重要方面。一本优秀的编程书籍,不仅内容要好,阅读体验也要舒适。清晰的字体、合理的行间距、以及代码的高亮显示,都能极大地提升阅读效率。我希望这本书在代码示例的呈现上,能够做到清晰、规范,并且易于复制粘贴。对于“速学”而言,我会非常看重书中是否能够提供一些“速记”或“要点总结”的模块,帮助我快速回顾和记忆关键知识点。我也会留意书中是否包含一些“陷阱”或“常见错误”的提示,帮助我避免在学习过程中走弯路。Objective-C的一些概念,比如消息转发(Message Forwarding)、方法解析(Method Resolution)等,对于初学者来说可能比较抽象,我希望这本书能够用图解或类比的方式,将这些概念讲得通俗易懂。光盘中的CD,如果能包含一些交互式的学习内容,比如可以动态演示Objective-C对象生命周期的工具,或者一些在线代码练习平台,那就更具吸引力了。
这本书的封面设计非常吸引眼球,简洁的背景色搭配醒目的书名“突破”,一眼就能感受到其想要传达的“效率”与“精进”的主题。我是一名在校大学生,对iOS开发一直充满兴趣,但由于课程安排的有限性,以及Objective-C这门语言本身的一些学习曲线,我在入门阶段总感觉有些吃力。市面上关于Objective-C的书籍很多,但大多偏向于理论讲解,或者过于深入,对于我这种希望快速上手、理解核心概念的读者来说,着实有些“劝退”。当我看到这本书的标题,尤其是“速学手册”这几个字,以及“含CD光盘1张”的附带信息,我心中燃起了希望。通常,光盘附带的资料会包含一些示例代码、开发环境的配置指导,甚至是一些实战项目的演示,这对于零散学习的开发者来说,无疑是宝贵的补充。我一直觉得,编程的学习,尤其是像Objective-C这样需要构建宏观框架的语言,理论结合实践是最高效的方式。光盘中的内容,如果能提供高质量的、可运行的示例代码,并辅以清晰的讲解,将极大地降低我从理论到实践的鸿沟。我期待这本书能够像它的名字一样,帮助我“突破”在Objective-C学习过程中遇到的瓶颈,让我能够更自信、更快速地掌握这门语言,为后续更深入的学习打下坚实的基础。这本书的定价也比较适中,与市面上其他同类书籍相比,具有一定的竞争力。在我看来,一本好的技术书籍,不仅要内容扎实,更要能够激发读者的学习热情,这本书的初步印象,已经在这方面做到了。
我拿到这本书后,首先会翻阅目录,了解整体的学习框架和知识体系。对于一本“速学手册”而言,我期望它能遵循一种清晰、逻辑性强的结构,能够快速引导读者掌握核心知识点。我会在目录中寻找是否包含Objective-C的基础语法、面向对象概念、Cocoa Touch框架的关键组件(如UIKit、Foundation)、以及Objective-C特有的特性(如Blocks、Categories、Protocols)。一个好的速学手册,应该能够做到“少即是多”,在保证核心知识覆盖的前提下,避免不必要的冗余信息,让读者能够集中精力攻克关键难点。我希望这本书能够提供大量的代码示例,并且这些示例能够直接在Xcode中运行,让我能够亲手实践,加深理解。光盘中的CD,我期待它能够提供这些示例代码的完整工程,甚至是一些配套的开发环境配置教程,帮助我快速搭建起学习环境,避免在环境配置上花费过多时间。此外,我还会关注书中是否提供了一些学习方法上的建议,例如如何进行单元测试,如何进行代码重构,这些都是提升开发能力的重要方面。
我拿到这本书的第一感觉是它的重量和纸张的质感。厚实但不过于沉重,捧在手里有一种实在感,这让我对接下来的阅读充满了信心。翻开第一页,目录的清晰排布和章节划分,就显露出作者精心设计的学习路径。对于“速学”这样一个目标,我更倾向于循序渐进但又重点突出的讲解方式。我特别留意到书中是否有提供清晰的“核心概念”梳理,以及“进阶技巧”的专题讲解。很多时候,入门只需要理解基本语法,但要做到“突破”,就需要掌握那些能够显著提升开发效率和代码健壮性的“秘诀”。我希望这本书不仅仅是语法手册,更能深入到Objective-C的设计哲学和最佳实践。例如,关于Objective-C的消息传递机制、运行时(Runtime)的特性,这些深入理解能够帮助开发者写出更灵活、更强大的代码。我对书中关于Objective-C与Cocoa Touch框架的结合讲解也充满期待,毕竟,Objective-C的生命力很大程度上体现在它与Apple平台API的深度融合上。光盘中的CD,我期待它能提供一些不同难度的实战项目,从简单的UI构建到稍复杂的网络请求、数据存储,最好能有一个完整的、可运行的App示例,让我能边学边练,切实感受到知识的转化。
我拿到这本书后,会立即检查它是否包含一个详尽的索引。对于一本技术参考书而言,一个好的索引是必不可少的。当我在开发过程中遇到具体问题时,能够快速地通过索引找到相关的章节和内容,这能极大地节省我的时间。我希望这本书能够覆盖Objective-C开发中的各个方面,包括但不限于:Foundation框架、UIKit框架、Cocoa Bindings、Core Animation、Memory Management、Networking、Concurrency等。同时,我更期待书中能提供一些关于Objective-C与Swift互操作性的实践建议,例如如何调用Objective-C的API,如何在Objective-C项目中使用Swift代码,以及如何在两者之间进行数据传递。光盘中的CD,我希望它能提供一些丰富的第三方库的示例,或者是一些跨平台开发相关的资料,能够帮助我拓展视野,了解Objective-C在更广泛的应用场景。
超级适合入门,有 C 基础就能看
垃圾编辑,错字狂多,半本是讲C的!电子工业出版社出这种书责任编辑是不是要去撞豆腐死?
垃圾编辑,错字狂多,半本是讲C的!电子工业出版社出这种书责任编辑是不是要去撞豆腐死?
超级适合入门,有 C 基础就能看
垃圾编辑,错字狂多,半本是讲C的!电子工业出版社出这种书责任编辑是不是要去撞豆腐死?