登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

『簡體書』iOS开发进阶

書城自編碼: 2504457
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作 者: 唐巧 著
國際書號(ISBN): 9787121247453
出版社: 电子工业出版社
出版日期: 2014-12-01
版次: 1 印次: 1

書度/開本: 16开 釘裝: 平装

售價:NT$ 585

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
人体结构绘画重点
《 人体结构绘画重点 》

售價:NT$ 653.0
中国妖怪故事(全集·增订版)
《 中国妖怪故事(全集·增订版) 》

售價:NT$ 1010.0
于胥斯原 乡族、风水与地方记忆
《 于胥斯原 乡族、风水与地方记忆 》

售價:NT$ 806.0
以经治国与汉代社会
《 以经治国与汉代社会 》

售價:NT$ 449.0
我真正想要什么?:智慧瑜伽答问/正念系列
《 我真正想要什么?:智慧瑜伽答问/正念系列 》

售價:NT$ 265.0
元朝理财记 从成吉思汗的崛起到元朝的衰亡
《 元朝理财记 从成吉思汗的崛起到元朝的衰亡 》

售價:NT$ 449.0
欧洲史:一本书历览欧洲数千年兴衰起伏,理解欧洲文明何以铸就今日世界
《 欧洲史:一本书历览欧洲数千年兴衰起伏,理解欧洲文明何以铸就今日世界 》

售價:NT$ 1520.0
趣学CCNA——路由与交换(第2版)
《 趣学CCNA——路由与交换(第2版) 》

售價:NT$ 458.0

建議一齊購買:

+

NT$ 456
《 Objective-C高级编程:iOS与OS X多线程和内存管理(苹果源代码不会告诉你的Objective-C高级编程) 》
+

NT$ 621
《 Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法(名著名译,Amazon五星好评,7大方面探讨编写高效、易于理解易于维护和易于扩展的Objective-C代码) 》
+

NT$ 413
《 iOS Auto Layout开发秘籍(第2版)(移动开发经典丛书) 》
+

NT$ 829
《 iOS编程(第4版) 》
+

NT$ 711
《 iOS编程实战 》
+

NT$ 656
《 Objective-C编程全解(第3版) 》
編輯推薦:
全面提高开发者的技能水平,工具|实践|理论一步到位;

结合国内特有的开发需求,为iOS开发者量身打造;

国内唯一iOS开发微信公共帐号运营者首次经典分享;

真正适合iOS中、高级开发者的进阶读物。
內容簡介:
《iOS开发进阶》分工具、实践、理论三大部分。第一部分介绍iOS 开发的常用工具,第二部分介绍iOS开发中的一些常见的实践经验,第三部分介绍iOS 开发中涉及的原理。

如果把成为iOS 开发高手的过程比作武侠小说中的修炼过程的话,工具、实践和理论的学习就分别对应兵器、招式和内功的修炼。《iOS开发进阶》希望通过这三方面的综合讲解,全面提高开发者的技能水平。
關於作者:
唐巧,Blogger、InfoQ编辑,资深iOS开发者。曾在网易参与过网易邮箱、网易微博、有道云笔记的开发。目前正参与互联网教育公司猿题库的创业,负责猿题库和小猿搜题的iOS版本开发。

喜欢写作与分享,长期维护着自己的技术博客、技术微博@唐巧_boy,以及微信公众号iOSDevTips,所写的技术文章也多次发表在InfoQ网站和《程序员》杂志上。
目錄
推荐序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . iii

第1 章引言. . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1

1.1 我为什么要写本书1

1.1.1 我的构思1

1.1.2 内容导读1

1.1.3 目标读者2

1.1.4 随书示例代码和勘误2

1.1.5 致谢2

1.2 如何提高iOS 开发技能3

1.2.1 阅读博客3

1.2.2 读书3

1.2.3 看WWDC 视频4

1.2.4 看苹果的官方文档4

1.2.5 看开源项目的代码4

1.2.6 多写代码,多思考4

1.2.7 多和同行交流5

1.2.8 分享5

I 第一部分:iOS 开发工具

第2 章使用CocoaPods 做依赖管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 CocoaPods 简介9

2.2 CocoaPods 的安装和使用10

2.2.1 CocoaPods 的安装10

2.2.2 使用CocoaPods 的镜像索引10

2.2.3 使用CocoaPods 11

2.2.4 查找第三方库11

2.3 注意事项12

2.3.1 关于.gitignore 12

2.3.2 为自己的项目创建podspec 文件12

2.3.3 使用私有的pods 12

2.3.4 不更新podspec 12

2.3.5 生成第三方库的帮助文档13

2.3.6 原理13

第3 章网络封包分析工具Charles. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1 Charles 简介15

3.2 Charles 的安装和使用16

3.2.1 安装Charles 16

3.2.2 安装SSL 证书16

3.2.3 将Charles 设置成系统代理17

3.2.4 Charles 主界面介绍18

3.2.5 过滤网络请求18

3.3 使用Charles 协助iOS 开发19

3.3.1 截取iPhone 上的网络封包19

3.3.2 模拟慢速网络21

3.4 高级功能22

3.4.1 截取SSL 信息22

3.4.2 修改网络请求内容23

3.4.3 修改服务器返回内容25

3.5 Map 功能25

3.6 Rewrite 功能27

3.7 Breakpoints 功能29

3.8 总结30

3.9 参考链接30

第4 章界面调试工具Reveal . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1 Reveal 简介31

4.2 Reveal 的使用32

4.2.1 用Reveal 连接模拟器调试32

4.2.2 用Reveal 连接真机调试34

4.2.3 用Reveal 调试其他应用界面34

4.2.4 总结35

4.2.5 参考资料36

第5 章移动统计工具Flurry . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.1 Flurry 简介37

5.2 Flurry 的基本使用38

5.2.1 注册和下载对应SDK 38

5.2.2 集成SDK 40

5.2.3 自定义统计项42

5.2.4 查看统计结果43

5.2.5 统计Crashlog 44

5.3 对比和总结45

5.3.1 和其他统计分析平台的对比45

5.3.2 总结45

第6 章崩溃日志记录工具Crashlytics. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6.1 Crashlytics 简介47

6.2 Crashlytics 的使用49

6.3 实现原理和使用体会52

第7 章App Store 统计工具App Annie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 55

7.1 App Annie 简介55

7.2 App Annie 的使用56

7.3 App Annie 账号的注册及配置59

7.4 和其他工具的对比60

7.4.1 官方的命令行工具60

7.4.2 其他类似服务61

7.4.3 功能对比61

第8 章Xcode 插件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 63

8.1 Xcode 插件管理工具Alcatraz
63

8.1.1 简介63

8.1.2 安装和删除64

8.1.3 使用64

8.1.4 插件路径66

8.2 关于Xcode 的插件机制66

8.3 常用Xcode 插件66

8.3.1 KSImageNamed 66

8.3.2 XVim 67

8.3.3 FuzzyAutocompletePlugin 67

8.3.4 XToDo 67

8.3.5 BBUDebuggerTuckAway 68

8.3.6 SCXcodeSwitchExpander 68

8.3.7 deriveddata-exterminator 68

8.3.8 VVDocumenter 69

8.3.9 ClangFormat 69

8.3.10 ColorSense 69

8.3.11 XcodeBoost 70

第9 章其他工具介绍. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.1 取色工具:数码测色计(DigitalColor
Meter) 71

9.1.1 前言71

9.1.2 使用介绍71

9.1.3 其他类似工具:xScope 72

9.2 其他图形工具73

9.2.1 ImageOptim 73

9.2.2 马克鳗74

9.2.3 Dash 74

9.2.4 蒲公英75

9.3 命令行工具75

9.3.1 nomad 75

9.3.2 xctool 76

9.3.3 appledoc 76

II 第二部分:iOS 开发实践

第10 章理解内存管理. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

10.1 引用计数81

10.1.1 什么是引用计数,原理是什么81

10.1.2 我们为什么需要引用计数83

10.1.3 不要向已经释放的对象发送消息85

10.1.4 循环引用(reference
cycles)问题85

10.1.5 使用Xcode 检测循环引用88

10.2 使用ARC 90

10.2.1 Automatic Reference Count 90

10.2.2 Core Foundation 对象的内存管理92

第11 章掌握GCD . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

11.1 GCD 简介95

11.2 使用GCD 97

11.2.1 block 的定义97

11.2.2 系统提供的dispatch 方法98

11.2.3 修改block 之外的变量99

11.2.4 后台运行99

11.2.5 总结100

第12 章使用UIWindow . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

12.1 UIWindow 简介101

12.2 为UIWindow 增加UIView 102

12.3 系统对UIWindow 的使用102

12.3.1 WindowLevel 104

12.3.2 手工创建UIWindow 105

12.3.3 不要滥用UIWindow 108

12.3.4 参考资料109

第13 章动态下载系统提供的多种中文字体. . . .
. . . . . . . . . . . . . . . . . . . . . 111

13.1 功能简介111

13.1.1 前言111

13.1.2 功能介绍112

13.1.3 字体列表112

13.2 使用教程113

13.2.1 相关API 介绍113

13.2.2 总结115

第14 章使用应用内支付. . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

14.1 后台设置117

14.2 iOS 端开发119

14.3 服务端开发121

14.4 注意事项122

第15 章基于UIWebView 的混合编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

15.1 混合编程简介123

15.2 使用模板引擎渲染HTML 界面124

15.3 Objective-C 语言和JavaScript 语言相互调用126

15.4 如何传递参数129

15.5 同步和异步129

15.6 注意事项130

15.6.1 线程阻塞问题130

15.6.2 主线程的问题130

15.6.3 键盘控制130

15.6.4 CommonJS 规范130

15.7 使用Safari 进行调试131

第16 章安全性问题. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

16.1 前言135

16.2 网络安全135

16.2.1 安全地传输用户密码135

16.2.2 防止通讯协议被轻易破解137

16.2.3 验证应用内支付的凭证138

16.3 本地文件和数据安全138

16.3.1 程序文件的安全138

16.3.2 本地数据安全140

16.4 源代码安全140

16.5 总结142

第17 章基于CoreText 的排版引擎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

17.1 CoreText 简介143

17.2 基于CoreText 的基础排版引擎145

第18 章实战技巧. . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

18.1 App Store 与审核181

18.1.1 撤销正在审核的应用181

18.1.2 申请加急审核181

18.1.3 应用在市场的名字182

18.1.4 测试设备数的限制182

18.1.5 如何将应用下架183

18.1.6 如何举报别的应用侵权183

18.1.7 iTunes Connect 后台操作出错184

18.1.8 Metadata Reject 184

18.2 开发技巧184

18.2.1 UILabel 内容模糊184

18.2.2 收起键盘184

18.2.3 NSJSONSerialization 比NSKeyedArchiver 更好185

18.2.4 设置应用内的系统控件语言185

18.2.5 为什么viewDidUnload 被废弃188

18.2.6 多人协作慎用Storyboard
189

18.2.7 避免滥用block 190

18.2.8 合并工程文件的冲突192

18.2.9 忽略编译警告193

18.3 Xcode 使用技巧193

18.3.1 Xcode 快捷键193

18.3.2 查找技巧195

18.3.3 JavaScript 文件设置调整195

18.3.4 清除DerivedData
196

18.3.5 target 信息异常197

18.3.6 下载Xcode 197

18.4 调试技巧197

18.4.1 模拟器快捷键197

18.4.2 覆盖安装注意事项197

18.4.3 给模拟器相册增加图片198

18.4.4 获得模拟器中的程序数据198

18.4.5 安装旧版本的模拟器199

18.4.6 模拟慢速网络199

18.4.7 异常断点与符号断点199

18.5 ipa 文件格式199

18.5.1 查看ipa 的内容199

18.5.2 查看ipa 中的图片200

18.6 为工程增加Daily Build 201

18.6.1 前言201

18.6.2 步骤201

18.6.3 遇到的问题206

18.6.4 总结206

18.7 使用脚本提高开发效率206

18.7.1 删除未使用的图片资源206

18.7.2 用脚本自动生成小尺寸的图片207

18.7.3 检查图片208

18.8 管理代码片段209

18.8.1 代码片段介绍209

18.8.2 定义自己的代码片段210

18.8.3 使用Git 管理代码片段211

18.8.4 其他代码片段管理工具211

III 第三部分:iOS 开发底层原理

第19 章Objective-C 对象模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 215

19.1 简介215

19.2 isa 指针215

19.3 类的成员变量217

19.4 对象模型的应用220

19.4.1 动态创建对象220

19.4.2 系统相关API 及应用222

19.4.3 参考文献226

第20 章Tagged Pointer 对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 227

20.1 原有系统的问题227

20.2 Tagged Pointer 介绍228

20.2.1 Tagged Pointer 228

20.2.2 特点230

20.3 注意事项和实现细节231

20.3.1 isa 指针231

20.3.2 64 位下的isa 指针优化231

20.3.3 isa 的bit 位含义232

20.3.4 总结233

20.3.5 参考文献233

第21 章block 对象模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 235

21.1 block 的内部数据结构定义235

21.2 用clang 分析block 实现237

21.2.1 NSConcreteMallocBlock 类型的block 的实现242

21.2.2 变量的复制243

21.3 注意事项243

21.3.1 避免循环引用243

21.3.2 ARC 对block 类型的影响244
內容試閱
前言

人生如长跑,成长如进阶

曾经有很多次想提笔写一本纯粹的技术图书,有几次甚至已经把目录做完了,但是看到“层峦叠嶂”的目录结构,我总是心生恐惧。一想到要耗费一年多的业余时间去写那些枯燥无味的技术文字,并逐一核对各种技术细节,我仿佛置身幽暗的森林而无法自拔。计划还未开始,就已经结束了。

总有人会去做这些费时费力并能够惠及大众的事情,他们像一个个沉默的跑者,在奔跑的同时,不停地标出路线,记录经验,传播技巧,并吸引更多的人加入跑步的队伍一起成长。

唐巧就是其中之一。

我很早就认识了唐巧,那时他还是一个初入江湖的“小球”,高高瘦瘦,正在网易有道做云笔记的开发。短短几年之内,唐巧获得了飞速的成长,他不仅是一个优秀的iOS 开发者,而且成为iOS 领域的布道者。他从2011 年开始构建独立博客“唐巧的技术博客”,撰写了大量的iOS 开发相关的文章,成为知名iOS 博主。2012 年唐巧离开网易有道,加入猿题库,成为一个创业者。期间他组建了由iOS 开发领域顶尖开发者构成的“真·iOS 开发”QQ 群,大家一边在群里讨论技术问题,一边通过各自的博客把成果分享出去。我有幸参与其中,可以说,这是iOS 领域最专业的技术群体之一。2013 年春节,唐巧开通了微信公众平台“iOS 开发”(iOSDevTips),开始基于微信公众号传播自己的开发理念和相关技术,迄今为止已经积累了一万多名专业订阅者。

在承担日常研发任务的同时,还能做这么多的技术写作和内容分享,他让我这个老程序员亦十分佩服。

2013 年的一天,我在一次技术会议上碰到了唐巧,谈起了技术写作的事情。现在国内iOS 开发领域的技术图书良莠不齐,很多是“编著”,摘抄或翻译自官方文档,而且大家很喜欢去写入门类的图书,从编程语言、MVC、协议、策略到Xcode 的使用,到第一个App 项目的构建,等等,高级一点的进阶内容就少有涉及,很多iOS 开发者让我推荐一本面向中高级开发者的中文书时,我总是遍寻不着。那时候我正准备出版自己的《MacTalk·人生元编程》,于是也希望唐巧写一本iOS 进阶方面的书。我对唐巧说,你的博客上已经产出了那么多高质量的iOS 开发进阶内容,为什么不再增加一些内容,集结成册梳理成书呢?他若有所思地回答,我正准备这么干!

经年以后,唐巧再也没和我提起这件事,我也在忙忙碌碌中把他的书忘得一干二净。上周突然收到唐巧的一份书稿,打开一看,《iOS 开发进阶》静静地躺在邮箱里,已然成书。唐巧用了一年的时间,在博客文章的基础上进行完善、修改、增补,用清晰的“丝线”把散落各处的“珍珠”串起,形成脉络完整的知识体系,然后又新增了超过成书一半的内容,最终完成了这本关于iOS 开发的进阶图书。

书中从iOS 开发实战最常用的工具讲起,一直写到底层开发原理。内容分成三块:工具、实践和原理,每个章节都独立成文,读者可以从头细细品读,也可以随时翻阅其中一节,利用碎片时间阅读学习。就我个人而言,非常喜欢实践和原理两个部分,比如处理多核编程的GCD 技术、应用程序安全技术、CoreText 的排版引擎、Objective-C 对象模型、block 对象模型等,这些内容要么能帮助我解决实际问题,要么能够答疑解惑,深入细节。作为一个仍然在一线开发的技术作者,唐巧采用了图文并茂的方式去阐述问题,每个技术专题都配备了恰当的代码,力求将复杂的技术以最为简洁的方式呈现出来,让读者一目了然,读来深入浅出,并不枯燥。

写书永远有遗憾。由于出版时间的要求,这本书的原理部分略显单薄,另外,全书并未涉及苹果的最新语言Swift 相关的内容,相关的代码示例都是基于Objective-C 的。希望唐巧的下一本书能够涉及更多这部分内容,这也是我的一个心愿。

在这样一个原创匮乏的年代,我能做到的就是向更多的人去推荐这样一本书。人生如长跑,成长如进阶,如果你是一个iOS 开发者,这本书一定不要错过!

池建强

《MacTalk·人生元编程》作者

微信平台MacTalk 出品人

2014 年,冬

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.