新書推薦:
《
新加坡教育:神话与现实
》
售價:HK$
98.9
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
299.0
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
181.7
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
112.7
《
中国常见植物野外识别手册:青海册
》
售價:HK$
78.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
89.7
《
迷人的化学(迷人的科学丛书)
》
售價:HK$
147.2
|
編輯推薦: |
全书包含近百个实例,几乎每个知识点都可以找到对应的实例,*后提供连连看极具参考价值。
全部案例均通过真机测试,随书光盘提供全部代码。
|
內容簡介: |
本书基于《疯狂iOS讲义(上)》第2版升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例(除前面介绍Objective-C语法部分之外)全部都提供Swift、Objective-C两种语言的版本。本书以最新的iOS 9.2、Xcode 7.2为平台,全面介绍了iOS应用开发的基础知识。书中每个案例、每个截图都全面升级到iOS 9.2。本书全面、细致地介绍了Objective-C的面向对象语法、Foundation框架的核心类库用法、文件 IO体系等,详细讲解了iOS应用开发的基本理论,以及iOS应用的MVC设计和事件处理编程,重点介绍了iOS界面编程、iOS应用的生命周期、Quartz 2D绘图、坐标变换、Core Image滤镜等内容,掌握这些基础内容之后,即可开发出基础的iOS App应用和简单的iOS游戏。本书最后介绍了一个疯狂连连看的实例。本书详细介绍了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是为了自适应不同尺寸屏幕而设计的控件,可用于取代早期iOS开发中的约束(约束实在是太难以管理了)。本书还重点介绍了Xcode 7提供的Storyboard Reference,通过使用Storyboard Reference,可以对大型iOS App的界面设计进行分解、重构,从而保证项目具有更好的可维护性。本书从项目驱动的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮助读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http:www.crazyit.org)发帖,笔者将会及时予以解答。本书为所有打算深入掌握iOS编程的读者而编写,适合各种层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。但如果只是想简单涉猎iOS应用开发,则本书过于庞大,不适合阅读。
|
關於作者: |
十多年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职教授,51CTO专家门诊特邀嘉宾。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。
|
目錄:
|
第1章 iOS应用与开发环境1
1.1 iOS简介及其开发语言2
1.1.1 Swift简介2
1.1.2 Objective-C简介2
1.1.3 iOS简介3
1.2 搭建iOS开发环境4
1.2.1 下载并安装Xcode和SDK4
1.3 第一个Objective-C程序7
1.3.1 使用文本编辑器开发Objective-C
程序7
1.3.2 使用Xcode工具开发Objective-C
程序9
1.4 熟悉Xcode11
1.4.1 创建iOS项目11
1.4.2 熟悉导航面板13
1.4.3 熟悉检查器面板16
1.4.4 熟悉库面板17
1.4.5 使用Xcode的帮助系统19
1.5 本章小结21
第2章 数据类型和运算符22
2.1 注释23
2.2 标识符和变量24
2.2.1 分隔符24
2.2.2 标识符规则26
2.2.3 Objective-C关键字26
2.3 数据类型分类26
2.4 基本数据类型27
2.4.1 整型27
2.4.2 NSLog输出函数及格式字符28
2.4.3 字符型30
2.4.4 浮点型31
2.4.5 枚举型32
2.4.6 BOOL类型34
2.5 类型转换35
2.5.1 自动类型转换36
2.5.2 强制类型转换37
2.5.3 表达式类型的自动提升37
2.6 运算符38
2.6.1 算术运算符38
2.6.2 赋值运算符41
2.6.3 位运算符41
2.6.4 扩展后的赋值运算符43
2.6.5 比较运算符44
2.6.6 逻辑运算符45
2.6.7 逗号运算符45
2.6.8 三目运算符46
2.6.9 运算符的结合性和优先级47
2.7 本章小结48
第3章 流程控制与数组49
3.1 顺序结构50
3.2 分支结构50
3.2.1 if条件语句50
3.2.2 switch分支语句54
3.3 循环结构56
3.3.1 while循环语句56
3.3.2 do while循环语句58
3.3.3 for循环59
3.3.4 嵌套循环62
3.4 控制循环结构63
3.4.1 使用break结束循环63
3.4.2 使用continue结束本次循环64
3.4.3 使用return结束函数64
3.5 goto语句65
3.6 数组67
3.6.1 定义数组67
3.6.2 数组的显式初始化68
3.6.3 使用数组69
3.6.4 多维数组70
3.6.5 多维数组的初始化71
3.6.6 字符数组、字符串与结束标志77
3.6.7 输出字符串和字符串函数78
3.6.8 数组的应用举例80
3.7 本章小结81
第4章 C语言特性82
4.1 函数83
4.1.1 定义函数83
4.1.2 函数声明86
4.1.3 函数的参数传递机制87
4.1.4 递归函数91
4.1.5 数组作为函数参数92
4.1.6 内部函数与外部函数96
4.2 局部变量与全局变量98
4.2.1 局部变量98
4.2.2 全局变量99
4.2.3 外部全局变量与内部全局变量101
4.2.4 动态存储与静态存储102
4.3 预处理105
4.3.1 使用#define、#undef执行
宏定义105
4.3.2 带参数的宏定义107
4.3.3 使用#ifdef、#ifndef、#else、
#endif执行条件编译108
4.3.4 使用#if、#elif、#else、#endif
执行条件编译110
4.3.5 #include与#import111
4.4 指针112
4.4.1 指针的概念112
4.4.2 指针变量及其基本用法113
4.4.3 指针变量作为函数参数115
4.5 指针与数组117
4.5.1 指向数组的指针变量117
4.5.2 指针运算118
4.5.3 数组变量作为函数参数120
4.5.4 指向多维数组的指针变量122
4.6 字符串与指针124
4.6.1 使用字符指针表示字符串125
4.6.2 字符指针作为函数参数125
4.7 函数与指针127
4.7.1 用函数指针变量调用函数127
4.7.2 用函数指针变量作为函数参数128
4.7.3 返回指针的函数129
4.8 指针数组和指向指针变量的指针131
4.8.1 指针数组与main函数形参131
4.8.2 指向指针变量的指针134
4.9 结构体134
4.9.1 定义结构体134
4.9.2 typedef语句136
4.9.3 初始化结构体变量138
4.9.4 结构体数组139
4.10 块140
4.10.1 块的基本语法140
4.10.2 块与局部变量141
4.10.3 直接使用块作为参数142
4.10.4 使用typedef定义块类型143
4.11 本章小结144
第5章 面向对象(上)145
5.1 类和对象146
5.1.1 定义类146
5.1.2 对象的产生和使用150
5.1.3 对象和指针152
5.1.4 self关键字154
5.1.5 id类型157
5.2 方法详解158
5.2.1 方法的所属性158
5.2.2 形参个数可变的方法159
5.3 成员变量160
5.3.1 成员变量及其运行机制160
5.3.2 模拟类变量163
5.3.3 单例(Singleton)模式164
5.4 隐藏和封装165
5.4.1 理解封装165
5.4.2 使用访问控制符165
5.4.3 理解@package访问控制符169
5.4.4 合成存取方法170
5.4.5 使用点语法访问属性176
5.5 键值编码(KVC)与键值监听
(KVO)176
5.5.1 简单的KVC177
5.5.2 处理不存在的key179
5.5.3 处理nil值181
5.5.4 key路径182
5.5.5 键值监听(KVO)184
5.6 对象初始化187
5.6.1 为对象分配空间187
5.6.2 初始化方法与对象初始化187
5.6.3 便利的初始化方法189
5.7 类的继承191
5.7.1 继承的特点191
5.7.2 重写父类的方法193
5.7.3 super关键字194
5.8 多态197
5.8.1 多态性197
5.8.2 指针变量的强制类型转换200
5.8.3 判断指针变量的实际类型201
5.9 本章小结202
第6章 面向对象(下)203
6.1 Objective-C的包装类204
6.1.1 它们不是包装类204
6.1.2 NSValue和NSNumber205
6.2 处理对象206
6.2.1 打印对象和description方法206
6.2.2 ==和isEqual:方法208
6.3 类别与扩展212
6.3.1 类别(category)213
6.3.2 利用类别对类进行模块化设计215
6.3.3 使用类别来调用私有方法215
6.3.4 扩展(extension)217
6.4 协议(protocol)与委托219
6.4.1 规范、协议与接口219
6.4.2 使用类别实现非正式协议220
6.4.3 正式协议的定义221
6.4.4 遵守(实现)协议222
6.4.5 协议与委托(delegate)225
6.5 使用@try处理异常228
6.5.1 使用@try...@catch...@finally
捕获异常229
6.5.2 访问异常信息231
6.5.3 使用@finally回收资源232
6.5.4 抛出异常与自定义异常类233
6.6 Objective-C反射机制235
6.6.1 获得Class235
6.6.2 检查继承关系236
6.6.3 动态调用方法237
6.7 手动内存管理241
6.7.1 对象的引用计数242
6.7.2 对象所属权245
6.7.3 方法中的保留和释放247
6.7.4 使用自动释放池248
6.7.5 自动释放池的销毁时机与
工作过程250
6.7.6 临时对象与事件循环中的
自动释放池251
6.7.7 手动内存管理的规则总结252
6.8 自动引用计数253
6.8.1 自动引用计数概述253
6.8.2 @autoreleasepool块254
6.8.3 使用弱引用解决强引用循环255
6.9 本章小结258
第7章 Foundation框架详解259
7.1 字符串(NSString与
NSMutableString)260
7.1.1 创建字符串260
7.1.2 NSString的常用功能261
7.1.3 可变字符串
(NSMutableString)262
7.2 日期与时间263
7.2.1 日期与时间(NSDate)264
7.2.2 日期格式器
(NSDateFormatter)265
7.2.3 日历(NSCalendar)与日期
组
|
|