《iOS应用开发最佳实践》
基本信息
作者: 王浩
出版社:电子工业出版社
ISBN:9787121207679
上架时间:2013-7-22
出版日期:2013 年8月
开本:16开
页码:552
版次:1-1
所属分类:计算机 > 软件与程序设计 > 移动开发
内容简介
计算机书籍
《ios应用开发最佳实践》对ios应用开发的方方面面进行了说明。全书分为20章,系统地介绍了创建第1个iphone应用、objective-c语言开发基础、设计iphone应用、导航栏视图控制器和标签栏视图控制器、属性字符串、ios控件应用入门、ios控件应用进阶、应用及视图生命周期、ios绘图和自动旋转、ios自动布局、手势识别技术、ios高级控件、passbook、集合视图、ios多线程编程、数据持久化、core location定位和map kit、core motion动作管理器,以及icloud云服务。全书的讲解通俗易懂,循序渐进,案例丰富,帮助读者快速掌握ios开发技巧并能够做到举一反三、融会贯通。
《ios应用开发最佳实践》适合有一定.net、java等开发经验的开发人员、需要为企业内部用户开发ios应用的it人员、希望接触和了解ios应用开发的人员,以及希望了解ios应用的各种特性的人员阅读和参考。
目录
《ios应用开发最佳实践》
第1章 创建第1个iphone应用
1
1.1 iphone应用开发的背景
1
1.2 做好准备工作
5
1.3 下载开发工具
7
1.4 了解ios运行环境
8
1.5 ios应用开发的注意点
9
1.6 创建第1个hello world iphone应用
10
1.6.1 通过xcode创建并运行iphone项目
10
1.6.2 了解iphone应用的基本运行机理
15
1.6.3 丰富你的iphone应用
18
1.6.4 为应用添加桌面图标
21
1.6.5 关于iphone 5应用的补充说明
24
1.6.6 老版本应用的兼容性问题
24
1.7 小结
24
第2章 objective-c语言开发基础
25
2.1 objective-c的hello world程序
26
2.2 创建一个objective-c类
29
2.2.1 通过xcode创建person类
29
2.2.2 对person类的解读
32
.2.2.3 类的构造方法
36
2.2.4 继承和多态
38
2.2.5 选择器(selector)
43
2.3 常用类介绍
45
2.3.1 nsstring类
45
2.3.2 nsarray类
48
2.3.3 nsdictionary类
51
2.4 属性(property)
53
2.4.1 设置属性
53
2.4.2 以person类为例
53
2.4.3 @synthesize指令
54
2.4.4 xcode 4.5以后版本对@synthesize指令的处理
56
2.4.5 属性特性
56
2.5 内存管理
58
2.6 类别(class category)
59
2.7 类扩展(class extension)
62
2.8 协议
63
2.8.1 声明协议
63
2.8.2 使用协议
63
2.8.3 更多协议的特性
64
2.9 小结
64
第3章 设计iphone应用——从零开始
65
3.1 mvc架构
65
3.2 基于nib文件开发单视图交互性的应用
67
3.1.1 创建交互性应用视图
67
3.1.2 连接视图和视图控制器
72
3.1.3 创建事件处理代码
76
3.3 创建多视图交互应用
78
3.2.1 创建空应用
79
3.2.2 添加主视图
81
3.2.3 添加子视图
85
3.2.4 进一步完善应用
86
3.4 小结
91
第4章 设计iphone应用——使用故事板
92
4.1 故事板和segue
92
4.2 完整的mvc应用
94
4.2.1 创建视图框架
94
4.2.2 添加unwind segue
98
4.2.3 通过unwind segue传递数据
100
4.2.4 准备武侠故事模型
103
4.2.5 通过segue传递数据
105
4.2.6 完善详情视图并运行应用
106
4.2.7 继续完善应用——动态创建控件
110
4.2.8 创建自适应文字长度的标签控件
112
4.3 容器视图(container view)
113
4.3.1 容器视图的基本知识
113
4.3.2 容器视图的简单例子
114
4.3.3 实现子视图控制器之间的互动(一)
120
4.3.4 实现子视图控制器之间的互动(二)
122
4.4 小结
125
第5章 导航栏视图控制器和标签栏视图控制器
126
5.1 导航栏视图控制器介绍
127
5.1.1 认识导航栏视图控制器
127
5.1.2 认识master-detail项目模板
128
5.1.3 搭建导航栏视图控制器项目
131
5.1.4 通过代码创建导航栏视图控制器
134
5.2 标签栏视图控制器介绍
135
5.2.1 认识标签栏视图控制器
135
5.2.2 认识tabbed application项目模板
136
5.2.3 搭建标签栏视图控制器项目
141
5.2.4 通过代码创建标签栏视图控制器
144
5.3 集成导航栏视图控制器与标签栏视图控制器
145
5.4 小结
147
第6章 属性字符串
148
6.1 通过属性字符串格式化文本
148
6.1.1 通过属性格式配置标签文本
150
6.1.2 属性文本支持的控件
151
6.2 通过代码设置属性字符串
151
6.2.1 了解nsattributedstring类
152
6.2.2 设置字间距和字体背景色
154
6.2.3 设置阴影以及下画线效果
155
6.2.4 为字符串不同部分设置不同效果
156
6.2.5 设置段落效果
157
6.2.6 可以设置的属性字符串样式列表
160
6.3 小结
161
第7章 ios控件
应用入门
162
7.1 ios控件简介
162
7.2 分段控件、文本框控件、滑块控件
163
7.2.1 分段控件介绍
164
7.2.2 文本框控件介绍
166
7.2.3 滑块控件介绍
169
7.2.4 创建展示项目
171
7.2.5 在输入完成后关闭键盘(一)
176
7.2.6 在输入完成后关闭键盘(二)
177
7.2.7 点击视图退出键盘
179
7.3 web视图和活动指示器控件
180
7.3.1 web视图控件介绍
180
7.3.2 活动指示器控件介绍
182
7.3.3 创建展示项目
184
7.4 图像视图控件
189
7.4.1 图像视图控件介绍
190
7.4.2 创建展示项目
190
7.5 小结
193
第8章 ios控件
应用进阶
195
8.1 进度视图、开关和计步器控件
195
8.1.1 进度视图控件介绍
195
8.1.2 开关控件介绍
197
8.1.3 计步器控件介绍
198
8.1.4 创建展示项目
199
8.2 警告视图、动作表单、活动视图控制器
202
8.2.1 警告视图介绍
203
8.2.2 警告视图示例
204
8.2.3 动作表单介绍(邮件视图控制器)
208
8.2.4 动作表单示例
210
8.2.5 活动视图控制器介绍
215
8.2.6 活动视图控制器示例
216
8.3 日期选择器(工具栏控件)
218
8.3.1 日期选择器控件介绍
218
8.3.2 创建展示项目
219
8.4 自定义选择器
226
8.5 自定义选择器控件介绍
226
8.5.1 数据源协议——uipicker-viewdatasource
227
8.5.2 代理协议——uipicker-viewdelegate
228
8.5.3 创建plist文件数据源
229
8.5.4 读取plist文件的方法
233
8.5.5 单轮选择器示例
233
8.5.6 多轮选择器示例
237
8.6 小结
241
第9章 应用及视图生命周期
242
9.1 应用的生命周期
242
9.1.1 应用的不同状态
243
9.1.2 通过代码模拟观察应用生命周期
245
9.1.3 应用程序的加载
247
9.1.4 响应中断
248
9.1.5 进入后台运行
249
9.1.6 返回前台运行
250
9.1.7 关于main函数
251
9.2 视图生命周期
252
9.2.1 视图生命周期简介
252
9.2.2 视图生命周期中的主要方法
253
9.2.3 loadview方法
253
9.2.4 与应用生命周期的互动
254
9.3 小结
256
第10章 ios绘图和自动旋转
257
10.1 ios绘图
257
10.1.1 视图和坐标体系
258
10.1.2 图形颜色处理
260
10.1.3 在上下文中绘制图形
261
10.1.4 手工绘图应用示例
264
10.2 自动旋转
270
10.2.1 旋转屏幕
271
10.2.2 使用自动尺寸处理旋转
273
10.2.3 通过代码方式处理旋转
276
10.3 小结
280
第11章 ios自动布局
281
11.1 通过约束处理屏幕旋转
282
11.1.1 约束应用示例
282
11.1.2 约束应用详解
285
11.1.3 不同的约束类型——pin
286
11.1.4 不同的约束类型——align
290
11.1.5 视图之间约束的互相作用
293
11.2 通过代码创建约束
293
11.2.1 nslayoutconstraint类
293
11.2.2 通过代码创建约束:指定控件位置
295
11.2.3 为控件指定高度、宽度
297
11.2.4 处理多个控件
299
11.3 可视化格式语言
302
11.3.1 constraintswithvisual- format:方法
302
11.3.2 可视化格式语言的具体例子
303
11.3.3 可视化格式语言的深入
304
11.4 小结
306
第12章 手势识别技术
307
12.1 自定义手势识别
307
12.2 使用自动手势识别器
309
12.2.1 自动手势识别开发原理
309
12.2.2 离散性手势与连续性手势
313
12.2.3 如何在模拟器中测试手势
315
12.2.4 识别轻扫手势
316
12.2.5 识别轻击手势
319
12.2.6 识别捏合手势
320
12.2.7 创建自定义手势识别器
323
12.3 小结
323
第13章 ios高级控件
324
13.1 滚动视图控件
324
13.1.1 使用滚动视图示例
325
13.1.2 在滚动视图中支持图片放大和缩小
328
13.1.3 滚动查看多个图片
330
13.1.4 关于滚动视图控件的更多知识
333
13.2 页面指示器控件
334
13.2.1 页面指示器控件示例
335
13.2.2 完善代码:允许用户点击页面指示器翻页
339
13.3 表格视图
340
13.3.1 表格样式
341
13.3.2 单元格样式
342
13.3.3 表格视图元素
344
13.3.4 数据源协议uitable- viewdatasource
346
13.3.5 代理协议uitable- viewdelegate
348
13.3.6 表格视图示例
348
13.3.7 创建自定义的表格单元格
355
13.3.8 分段示例
364
13.3.9 索引示例
368
13.3.10 实现搜索栏
369
13.4 小结
376
第14章 passbook
377
14.1 passbook初览
378
14.2 通过passsource.com创建凭证
379
14.3 凭证的工作原理
382
14.4 创建第1个凭证
383
14.4.1 找到开发者团队标识(teamidentifier)
383
14.4.2 创建凭证类型标识(passtype-identifier)
383
14.4.3 创建hello world凭证
388
14.5 凭证文件包的构成
395
14.6 pass.json文件
396
14.6.1 顶级键的说明
397
14.6.2 次级键的说明
398
14.7 打折券凭证详解
400
14.8 登机牌凭证详解
402
14.9 通过passkit框架操作凭证
406
14.9.1 passkit库介绍
406
14.9.2 passkit示例
407
14.10 小结
410
第15章 集合视图 (uicollection-view)
411
15.1 集合视图基础
412
15.1.1 数据源协议(uicollectionview-datasource)
413
15.1.2 代理协议(uicollectionview-delegate)
414
15.1.3 创建第1个集合视图应用
414
15.1.4 集合视图布局(uicollectionview-layout)
422
15.1.5 认识补充视图(supplementary view)
427
15.2 自定义集合视图单元格
429
15.3 小结
431
第16章 ios多线程编程
432
16.1 什么是多线程
432
16.2 ios的多线程知识
433
16.2.1 派遣队列dispatch queue
434
16.2.2 程序块block
440
16.2.3 在视图中通过gcd实现异步操作
444
16.3 异步执行代码的其他方法
447
16.3.1 通过performselector来异步执行
447
16.3.2 通过nstimer来异步执行
449
16.4 后台运行应用
449
16.5 小结
452
第17章 数据持久化
453
17.1 通过nsuserdefaults进行数据持久化
453
17.1.1 创建持久化联系人信息应用
454
17.1.2 保存用户输入的数据
456
17.1.3 读取用户保存的数据
458
17.2 应用程序沙盒
460
17.3 通过属性列表持久化数据
463
17.4 归档对象
465
17.4.1 实现nscoding协议
466
17.4.2 归档对象或取消归档
467
17.5 使用sqlite数据库
469
17.5.1 操作数据库的sqlite函数
469
17.5.2 使用sqlite 3的视图应用
473
17.6 使用core data
480
17.6.1 使用core data
480
17.6.2 通过代码访问数据模型
486
17.6.3 获得nsmanaged- objectcontext对象
489
17.6.4 如何插入、查询、更新以及删除数据
490
17.7 小结
493
第18章 core location定位和map kit
494
18.1 core location框架
494
18.1.1 位置管理器监控位置变化
496
18.1.2 位置管理器监控方向变化
497
18.1.3 使用位置管理器监控位置的例子
498
18.2 map kit
502
18.2.1 创建一个地图应用
502
18.2.2 自定义地图显示位置及范围
503
18.2.3 使用大头针标注地理位置
506
18.2.4 了解和使用mkannotationview
509
18.3 小结
513
第19章 core motion动作管理器
514
19.1 动作管理器类
515
19.1.1 检测加速计数据
517
19.1.2 检测旋转数据
522
19.1.3 检测组合信息
523
19.2 捕获动作事件
524
19.3 小结
524
第20章 icloud云服务
526
20.1 了解icloud云服务
526
20.2 云存储键/值对
529
20.3 云存储文档
532
20.3.1 子类化uidocument
532
20.3.2 如何定位ubiquity container
534
20.3.3 如何通过nsmetadataquery查询数据
535
20.3.4 文档的生命周期
536
20.4 小结
537
- iOS应用开发最佳实践:编写高质量的Objective-C代码
本文转载至 http://www.cocoachina.com/industry/20131129/7445.html 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问 ...
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法. 良好的 ...
- [转]Android开发最佳实践
——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/and ...
- web前端开发最佳实践笔记
一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...
- Hadoop MapReduce开发最佳实践(上篇)
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- 【读书笔记】iOS-微信公众平台开发最佳实践
一,微信是由腾讯公司广州研发中心产品团队开发,该团队经理张小龙被称为“微信之父”,公司总裁马化腾确定该产品名称为“微信”. 二,常见问题及解决方案. 1,请求URL超时. 这种情况一般是由于服务器网速 ...
- Android开发最佳实践《IT蓝豹》
Android开发最佳实践 移动开发Android经验分享应用GoogleMaterial Design 摘要:前 段时间,Google公布了Android开发最佳实践的一系列课程,涉及到一些平时 ...
- Android和PHP开发最佳实践
Android和PHP开发最佳实践 <Android和PHP开发最佳实践>基本信息作者: 黄隽实丛书名: 移动应用开发技术丛书出版社:机械工业出版社ISBN:9787111410508上架 ...
- 【社区公益】送《Web前端开发最佳实践》给需要的人
算起来至今,我进入软件开发行业已经有11年之久.从最初的研究人工智能,到后来的Web开发,控件开发,直到现在纯粹的Web前端开发.虽然没有大的作品问世,但也是勤勤恳恳,踏实做事,低调做人.从来不吹牛逼 ...
随机推荐
- struts2的运行流程
流程: 1:url 提交到tomcat http://localhost/s2/firstAction 2:tomcat 根据工程名 去 webapps 文件夹下找到对应工程 3:找web.xml S ...
- Maven常用命令及Eclipse应用
一般来说,github上大多的java项目都是使用maven,ant等进行构建的.由于之前没有使用过maven,因此这几天对maven进行了简单的学习.古话说:“温故而知新”,一些命令长时间不使用都会 ...
- 奇偶数判断2(if else+switch语句)
public class 奇偶数判断2 { public static void main(String [] agrs){ float s = 17f; //定义浮点型数据s float h = s ...
- np.random.seed()
124.np.random.seed()的作用 陈容喜 关注 2018.01.11 21:36 字数 3 阅读 4460评论 0喜欢 6 今天看到一段代码时遇到了np.random.seed(),搞不 ...
- 【英宝通Unity4.0公开课学习 】(六)76讲到90讲
还是关于Mecanim动画的内容. 这些讲的每讲长度明显比前面的长,而且很多都涉及到脚本编写. 不过我还是2倍速给略览过去了,主要目的就是学个框架嘛 :) 1. Blend Tree 可嵌套. 可理解 ...
- wordpress 下载主题模板、更新报错 No working transports found解决办法
出错原因是PHP没有开启curl. windows下开启方法如下 1. 将php.ini中的;extension=php_curl.dll前的分号去掉, 2. 将php中libeay32.ll, ss ...
- The Last Stand
The Last Stand https://ac.nowcoder.com/acm/contest/303/L 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...
- Array Product(模拟)
Array Product http://codeforces.com/problemset/problem/1042/C You are given an array aa consisting o ...
- VCP考试系统
题目的格式如下,题目和题目之间用“==”隔开,每个题目的“题干”,“选项”,“答案”用“*”号隔开 An administrator wants to provide users restrict ...
- fiddler抓web请求
原理 fiddler抓包原理 fiddler 调试器注册到操作系统因特网服务中,系统所有的网络请求都会走fiddler的代理,所以fiddler才能抓包. Debug traffic from any ...