疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础

出版日期:2015-4
ISBN:9787121256134
作者:李刚
页数:716页

内容概要

李刚,十多年软件行业开发从业经验,疯狂软件教育中心教学总监。
疯狂Java实训营创始人,疯狂Java体系原创图书作者。
广东技术师范学院计算机科学系兼职副教授,51cto专家门诊特邀嘉宾。
培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。
国内著名高端IT技术作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级Java EE企业应用实战》《疯狂iOS讲义(上)(下)》《疯狂Ajax讲义》《疯狂XML讲义》《经典Java EE企业应用实战》《疯狂HTML 5/CSS 3/JavaScript讲义》《Struts 2.x权威指南》等著作。其中疯狂Java体系图书经多年沉淀,赢得极高的市场认同,多次重印成为超级畅销书,并被多所“985”“211”院校选作教材。部分图书已被翻译成繁体中文版、授权到台湾地区。

书籍目录

第1章 iOS应用与开发环境
1
1.1 Objective-C与iOS简介
2
1.1.1 Objective-C简介
2
1.1.2 iOS简介
3
1.2 搭建iOS开发环境
3
1.2.1 下载并安装Xcode和SDK
4
1.2.2 安装辅助工具和文档
6
1.3 第一个Objective-C程序
7
1.3.1 使用文本编辑器开发Objective-C程序
7
1.3.2 使用Xcode工具开发Objective-C程序
9
1.4 熟悉Xcode
11
1.4.1 创建iOS项目
11
1.4.2 熟悉导航面板
13
1.4.3 熟悉检查器面板
16
1.4.4 熟悉库面板
17
1.4.5 使用Xcode的帮助系统
19
1.5 本章小结
22
第2章 数据类型和运算符
23
2.1 注释
24
2.2 标识符和变量
25
2.2.1 分隔符
25
2.2.2 标识符规则
27
2.2.3 Objective-C关键字
27
2.3 数据类型分类
27
2.4 基本数据类型
28
2.4.1 整型
28
2.4.2 NSLog输出函数及格式字符
29
2.4.3 字符型
31
2.4.4 浮点型
32
2.4.5 枚举型
33
2.4.6 BOOL类型
35
2.5 类型转换
36
2.5.1 自动类型转换
36
2.5.2 强制类型转换
38
2.5.3 表达式类型的自动提升
38
2.6 运算符
39
2.6.1 算术运算符
39
2.6.2 赋值运算符
42
2.6.3 位运算符
42
2.6.4 扩展后的赋值运算符
44
2.6.5 比较运算符
45
2.6.6 逻辑运算符
45
2.6.7 逗号运算符
46
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 局部变量与全局变量
97
4.2.1 局部变量
98
4.2.2 全局变量
99
4.2.3 外部全局变量与内部全局变量
100
4.2.4 动态存储与静态存储
102
4.3 预处理
104
4.3.1 使用#define、#undef执行宏定义
105
4.3.2 带参数的宏定义
106
4.3.3 使用#ifdef、#ifndef、#else、#endif执行条件编译
107
4.3.4 使用#if、#elif、#else、#endif执行条件编译
109
4.3.5 #include与#import
110
4.4 指针
111
4.4.1 指针的概念
111
4.4.2 指针变量及其基本用法
113
4.4.3 指针变量作为函数参数
114
4.5 指针与数组
117
4.5.1 指向数组的指针变量
117
4.5.2 指针运算
117
4.5.3 数组变量作为函数参数
120
4.5.4 指向多维数组的指针变量
122
4.6 字符串与指针
124
4.6.1 使用字符指针表示字符串
124
4.6.2 字符指针作为函数参数
125
4.7 函数与指针
126
4.7.1 用函数指针变量调用函数
126
4.7.2 用函数指针变量作为函数参数
128
4.7.3 返回指针的函数
129
4.8 指针数组和指向指针变量的指针
130
4.8.1 指针数组与main()函数形参
131
4.8.2 指向指针变量的指针
133
4.9 结构体
134
4.9.1 定义结构体
134
4.9.2 typedef语句
136
4.9.3 初始化结构体变量
137
4.9.4 结构体数组
139
4.10 块
139
4.10.1 块的基本语法
140
4.10.2 块与局部变量
141
4.10.3 直接使用块作为参数
142
4.10.4 使用typedef定义块类型
142
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 使用点语法访问属性
175
5.5 键值编码(KVC)与键值监听(KVO)
176
5.5.1 简单的KVC
176
5.5.2 处理不存在的key
179
5.5.3 处理nil值
181
5.5.4 key路径
182
5.5.5 键值监听(KVO)
183
5.6 对象初始化
186
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和NSNumber
205
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 获得Class
235
6.6.2 检查继承关系
236
6.6.3 动态调用方法
237
6.7 手动内存管理
240
6.7.1 对象的引用计数
242
6.7.2 对象所属权
244
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.9 本章小结
254
第7章 Foundation框架详解
256
7.1 字符串(NSString与NSMutableString)
257
7.1.1 创建字符串
257
7.1.2 NSString的常用功能
258
7.1.3 可变字符串(NSMutableString)
259
7.2 日期与时间
260
7.2.1 日期与时间(NSDate)
261
7.2.2 日期格式器(NSDateFormatter)
262
7.2.3 日历(NSCalendar)与日期组件(NSDateComponents)
264
7.2.4 定时器(NSTimer)
265
7.3 对象复制
267
7.3.1 copy与mutableCopy方法
267
7.3.2 NSCopying与NSMutableCopying协议
268
7.3.3 浅复制与深复制
270
7.3.4 setter方法的复制选项
272
7.4 Objective-C集合概述
273
7.5 数组(NSArray与NSMutableArray)
274
7.5.1 NSArray的功能与用法
274
7.5.2 对集合元素整体调用方法
279
7.5.3 对NSArray进行排序
280
7.5.4 使用枚举器遍历NSArray集合元素
282
7.5.5 快速枚举(for-in)
283
7.5.6 可变数组(NSMutableArray)
283
7.5.7 NSArray的KVC与KVO
285
7.6 集合(NSSet与NSMutableSet)
286
7.6.1 NSSet的功能与用法
286
7.6.2 NSSet判断集合元素重复的标准
289
7.6.3 NSMutableSet的功能与用法
292
7.6.4 NSCountedSet的功能与用法
293
7.7 有序集合(NSOrderedSet与NSMutableOrderedSet)
294
7.8 字典(NSDictionary与NSMutableDictionary)
296
7.8.1 NSDictionary的功能与用法
296
7.8.2 对NSDictionary的key排序
299
7.8.3 对NSDictionary的key进行过滤
301
7.8.4 使用自定义类作为NSDictionary的key
302
7.8.5 NSMutableDictionary的功能与用法
304
7.9 谓词
305
7.9.1 定义谓词
305
7.9.2 使用谓词过滤集合
306
7.9.3 在谓词中使用占位符参数
308
7.9.4 谓词表达式语法
309
7.10 本章小结
311
第8章 文件I/O
312
8.1 使用NSData与NSMutableData
313
8.2 使用NSFileManager管理文件和目录
314
8.2.1 访问文件属性和内容
315
8.2.2 创建、删除、移动、复制
316
8.2.3 查看目录包含的内容
317
8.3 使用NSPathUtilities.h管理路径
318
8.4 使用NSProcessInfo获取进程信息
320
8.5 使用NSFileHandle处理文件IO
321
8.6 使用NSURL读取网络资源
324
8.7 使用NSBundle处理项目相关资源
325
8.8 对象归档
326
8.8.1 使用NSKeyedArchiver归档
326
8.8.2 实现NSCoding协议
328
8.8.3 使用NSData完成自定义归档
331
8.8.4 使用归档实现深复制
333
8.9 本章小结
334
第9章 iOS应用开发入门
335
9.1 从iOS项目开始
336
9.1.1 iOS项目包含的文件
336
9.1.2 Interface Builder简介
337
9.1.3 添加控件
339
9.1.4 修改控件属性
340
9.1.5 UIView支持的属性
342
9.1.6 UILabel支持的属性
344
9.2 MVC
346
9.2.1 程序入口
346
9.2.2 应用程序代理
347
9.2.3 理解iOS的MVC
349
9.2.4 掌握UIViewController控制器
350
9.3 事件机制
352
9.3.1 程序获取控件的两种方式
352
9.3.2 事件处理的三种方式
358
9.4 代码控制UI界面
364
9.4.1 不使用界面设计文件开发UI界面
364
实例:无界面设计文件开发iOS应用
364
9.4.2 使用代码创建UI界面
366
实例:动态添加、删除标签
367
9.4.3 自定义UI控件
369
实例:跟随手指运动的小球
369
9.5 美化iOS应用
372
9.5.1 定制iOS应用图标
372
9.5.2 定制iOS应用的启动画面
373
9.6 本章小结
375
第10章 iOS应用的界面编程
335
10.1 UI控件概述
377
10.1.1 活动、静态和被动控件
377
10.1.2 UIControl基类介绍
377
10.2 按钮(UIButton)
379
实例:丰富多彩的按钮
381
10.3 文本框控件(UITextField)
383
实例:用户登录界面
385
10.3.1 完成输入后关闭键盘
386
10.3.2 触碰背景关闭键盘
387
10.4 多行文本控件(UITextView)
389
10.4.1 UIScrollView支持的属性
390
10.4.2 使用委托对象处理UITextView事件
392
实例1:通过导航按钮关闭虚拟键盘
392
实例2:通过自定义键盘附件关闭虚拟键盘
394
10.4.3 自定义选择内容后的菜单
396
10.5 开关按钮(UISwitch)
397
实例:使用开关控制“手电筒”
398
10.6 分段控件(UISegmentedControl)
399
实例1:通过分段控件控制背景颜色
400
实例2:动态增加、删除分段
401
10.7 图像控件(UIImageView)
402
实例1:图片浏览器
404
实例2:“幻灯片”播放器
406
10.8 进度条
407
10.8.1 UIProgressView
407
实例:定制进度条
409
10.8.2 UIActivityIndicatorView
410
10.9 拖动条(UISlider)
412
实例:通过拖动滑块改变图片透明度
413
10.10 警告框(UIAlertView)与UIActionSheet
415
10.10.1 UIAlertView的基本用法
415
10.10.2 带输入框的UIAlertView
417
10.10.3 使用UIActionSheet
419
10.11 日期选择器(UIDatePicker)
421
实例:倒计时器
423
10.12 选择器(UIPickerView)
425
10.12.1 单列选择器
426
10.12.2 多列选择器
427
10.12.3 相互依赖的多列选择器
429
10.12.4 自定义选择器视图
432
实例:“老虎机”游戏
432
10.13 iOS 8新增的UIVisualEffectView
435
10.14 微调器(UIStepper)
438
10.15 网页控件(UIWebView)
440
实例:迷你浏览器
442
10.16 工具条(UIToolBar)
444
实例:自定义工具条控件
446
10.17 表格(UITableView)与表格控制器(UITableViewController)
448
10.17.1 简单表格
450
10.17.2 处理单元格的选中
454
实例:编辑选中行
454
10.17.3 定制表格行
459
实例1:继承UITableViewCell定制表格行
459
实例2:使用动态单元格原型定制表格行
462
10.17.4 编辑表格
464
10.17.5 多分区表格以及分区索引
470
10.17.6 直接使用UITableViewController
472
10.17.7 静态单元格
474
10.17.8 使用UIRefreshController刷新表格
477
10.18 搜索条(UISearchBar)
479
10.18.1 使用搜索条
480
10.18.2 使用UISearchDisplayController
483
实例:下拉列表显示搜索结果
483
10.19 导航条(UINavigationBar)与导航控制器(UINavigationController)
487
10.19.1 使用导航条
487
10.19.2 使用UINavigationController
489
实例:查看、编辑图书信息
491
10.19.3 使用segue控制过渡
497
10.19.4 使用segue控制导航
501
10.20 网格(UICollectionView)与网格控制器(UICollectionViewController)
505
10.20.1 UICollectionView的功能与用法
508
10.20.2 使用UICollectionViewDelegateFlowLayout定制布局
512
实例:单元格大小不同的网格
513
10.20.3 扩展UICollectionViewLayout定制布局 514
实例:环形布局的UICollectionView
515
10.20.4 多分区网格
518
实例:带页眉、页脚的多分区网格
519
10.20.5 直接使用UICollectionViewController
523
10.21 标签条(UITabBar)与标签页控制器(UITabBarController)
526
10.21.1 使用UITabBar
527
10.21.2 使用UITabBarController
528
10.21.3 在Storyboard中使用UITabBarController
531
10.22 页控件(UIPageControl)与页控制器(UIPageViewController)
533
10.22.1 UIPageControl与UIScrollView结合使用
533
10.22.2 使用UIPageViewController
537
10.23 iPad应用开发
541
10.23.1 使用iPad专用控件:UISplitViewController
542
10.23.2 使用UIPopoverController实现浮动窗口
549
10.23.3 开发同时兼容iPhone与iPad的应用
551
10.24 本章小结
555
第11章 管理iOS应用的运行
556
11.1 iOS设备尺寸和自动旋转机制
557
11.1.1 配置应用支持的方向
557
11.1.2 指定视图控制器支持的方向
559
11.2 iOS 8增强的自动布局功能
560
11.2.1 自动布局的添加方式
560
11.2.2 使用自动布局适应不同尺寸的屏幕
566
11.2.3 使用Size Class适应屏幕旋转
570
11.3 iOS应用的生命周期
574
11.3.1 应用程序的状态
575
11.3.2 应用程序启动过程
576
11.3.3 程序入口:main函数
578
11.3.4 响应中断
578
11.3.5 进入后台
580
11.3.6 返回前台运行
581
11.3.7 应用程序终止
582
11.3.8 Main Run Loop
582
11.4 本章小结
583
第12章 图形、图像与动画
584
12.1 使用UIImage和CGImage处理位图
585
12.1.1 显示动画
585
实例:蝴蝶飞舞
587
12.1.2 CGImage与CGImageRef
588
12.2 Quartz 2D绘图
588
12.2.1 Quartz 2D绘图基础:CGContextRef
588
12.2.2 绘制几何图形
591
12.2.3 点线模式
593
12.2.4 绘制文本
597
12.2.5 设置阴影
601
12.2.6 使用路径
602
实例:绘制任意多角星
606
12.2.7 绘制曲线
607
实例:使用曲线绘制多瓣花朵
608
12.2.8 在内存中绘图
609
实例:绘图板
612
12.2.9 绘制位图
617
实例:扩展UIImage的功能
617
12.3 图形变换
622
12.3.1 使用坐标变换
622
12.3.2 坐标变换与路径结合使用
623
实例:雪花飘飘
624
12.3.3 使用矩阵变换
625
12.4 控制叠加模式
628
12.5 处理填充
634
12.5.1 渐变填充
634
12.5.2 模式填充
639
12.6 使用Core Image滤镜
644
12.7 动画
652
12.7.1 Core Animation动画基础
652
12.7.2 使用CALayer
653
12.7.3 使用CATransition控制过渡动画
656
12.7.4 使用属性动画
660
12.7.5 控制移动路径
665
实例:绕圈游动的小鱼
665
12.8 本章小结
667
第13章 疯狂连连看
668
13.1 游戏简介
669
13.2 开发游戏界面
670
13.2.1 开发界面布局
670
13.2.2 开发游戏界面控件
671
13.2.3 处理方块之间的连接线
676
13.3 游戏的状态数据模型
677
13.3.1 定义数据模型
677
13.3.2 初始化游戏状态数据
678
13.4 加载界面的图片
682
13.5 实现游戏视图控制器
684
13.6 实现游戏逻辑
686
13.6.1 定义FKGameService的接口代码
686
13.6.2 实现FKGameService
687
13.6.3 获取触碰点的方块
688
13.6.4 判断两个方块是否可以相连
689
13.6.5 定义获取通道的工具方法
691
13.6.6 没有转折点的横向连接
692
13.6.7 没有转折点的纵向连接
693
13.6.8 有一个转折点的连接
693
13.6.9 有两个转折点的连接
696
13.6.10 找出最短距离
702
13.7 本章小结
704

作者简介

移动互联网已经成为当今世界发展最快、市场潜力最大、前景最诱人的业务,iOS作为与Android并驾齐驱的操作系统,具有完善的生态圈,而且用户具有良好的付费习惯,因此iOS应用开发者具有良好的发展前景:不仅可入职移动互联网企业,更可以个人、小团队方式独立创业。
《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》是《疯狂iOS讲义(上)》的第2版,《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》基于最新的iOS 8.1、Xcode 6.1为平台,全面介绍了iOS应用开发的基础知识。书中每个案例、每个截图都全面升级到iOS 8.1。《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》全面、细致地介绍了Objective-C的面向对象语法、Foundation框架的核心类库用法、文件 IO体系等知识,掌握Objective-C语言是iOS应用开发的基础。掌握Objective-C语言之后,《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》将带领读者掌握iOS应用开发的基本理论以及iOS应用的MVC设计和事件处理编程,重点介绍了iOS界面编程、iOS应用的生命周期、Quartz 2D绘图、坐标变换、Core Image滤镜、Core Animation动画等内容,掌握这些基础内容之后即可开发简单的iOS游戏,因此《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》最后介绍了一个疯狂连连看的实例。
《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》并不局限于介绍iOS编程的各种理论知识,而是从“项目驱动”的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮助读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考、拿来就用。如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。
《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》为所有打算深入掌握iOS编程的读者而编写,适合各种层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。但如果只是想简单涉猎iOS应用开发,则《疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础》过于庞大,不适合阅读。


 疯狂iOS讲义(上)(第2版)——Objective-C 2.0与iPhone/iPad应用开发基础下载



发布书评

 
 


精彩短评 (总计1条)

  •     烂书啊,,,看了将近100业实在读不下去了,然后看了官方文档觉得生活好美好。。。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024