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

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

『簡體書』iOS 6编程实战【国内首本iOS 6 深度揭秘iOS 6高级特性与开发技巧】

書城自編碼: 2040918
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: [美]内皮尔
國際書號(ISBN): 9787115312181
出版社: 人民邮电出版社
出版日期: 2013-04-01
版次: 1 印次: 1
頁數/字數: 432/703000
書度/開本: 16开 釘裝: 平装

售價:NT$ 921

我要買

share:

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



新書推薦:
美器:中国古代物质文化九讲
《 美器:中国古代物质文化九讲 》

售價:NT$ 874.0
谜托邦:故事新编
《 谜托邦:故事新编 》

售價:NT$ 411.0
百年“巨富长”——建筑中的人文与历史
《 百年“巨富长”——建筑中的人文与历史 》

售價:NT$ 374.0
鲁迅“传统”与余华的小说创作
《 鲁迅“传统”与余华的小说创作 》

售價:NT$ 458.0
性心理学(裸脊锁线装,一部剖析性心理的百科全书,一本好读实用的性学指南)
《 性心理学(裸脊锁线装,一部剖析性心理的百科全书,一本好读实用的性学指南) 》

售價:NT$ 291.0
抢人:数字时代如何快速吸纳精准人才(美国商业图书大奖AXIOM年度图书)
《 抢人:数字时代如何快速吸纳精准人才(美国商业图书大奖AXIOM年度图书) 》

售價:NT$ 302.0
给好奇者的黑洞简史
《 给好奇者的黑洞简史 》

售價:NT$ 307.0
债务机器:美国的银行政策与个人陷阱
《 债务机器:美国的银行政策与个人陷阱 》

售價:NT$ 359.0

建議一齊購買:

+

NT$ 573
《 精解 Windows 10 》
+

NT$ 921
《 Cocos2D权威指南(Coco2D领域内容最全面、系统和深入著作,系统讲解其使用方法、技术要点、工作原理、开发技巧、最佳实践及性能优化) 》
+

NT$ 456
《 响应式Web设计:HTML5和CSS3实战【未来处于技术主流地位的响应式设计 网站运营必备利器】 》
+

NT$ 656
《 Unity 3D游戏开发技术详解与典型案例(独享两大获奖商业案例,全面的Unity 3D开发技术) 》
+

NT$ 466
《 交互设计沉思录:顶尖设计专家Jon Kolko的经验与心得(原书第2版)(UI设计丛书)(交互设计领域里程碑之作,交互设计思想领袖多年经验结晶!) 》
+

NT$ 551
《 iOS开发实战体验 》
編輯推薦:
深度揭秘iOS 6高级特性与开发技巧
发掘最佳实践,借鉴开发经验,真正掌控iOS开发
移动开发进阶必备,在最新平台上打造非凡应用
具体如下:
首先,它是国内的第一本ios 6图书
第二:新增一章讲解如何将数据上传到云端
第三:涵盖了iOS 6的大部分新功能,包括集合视图和自动布局(第7章),还有一整章介绍自动引用计数。
第四:ios 6增加了关于调试(第19章)、性能调优(第20章)以及集合视图和自动布局(第7章)的新内容
《iOS 6编程实战》适合具有一定iOS 开发经验,致力于深入了解iOS 开发、最佳实践以及他人实际开发经验的人学习参考。
內容簡介:
iOS开发如日中天,iOS 6又为我们带来了大量的高级特性,从事移动开发的你,还等什么?
《iOS 6编程实战》急开发者之所急,揭秘了多数开发类图书未曾展示过的iOS 6高级特性和开发技巧,带你深入了解iOS
6。作者结合自己多年的实践经验,毫无保留、面面俱到地讲解了如何充分利用强大的SDK将你的移动开发技能发挥到极致。全书涵盖了安全、多任务处理、多平台运行、块与函数式编程、高级文本布局、性能调优,以及如何通过应用内购买功能提高销售业绩。
久经“杀场”的两位作者Rob Napier和Mugunth
Kumar在本书中分享了他们为苹果移动设备开发“杀手级”应用的宝贵经验。以下是《iOS 6编程实战》部分精彩内容摘录:
兼容iPhone 5充分利用集合视图
操作Objective-C运行时  性能调优和消除BUG
用Security Services确保数据安全 面向REST式Web服务创建高性能应用
实现诱人的动画效果 在网络连接质量不一的情况下实现超快缓存
用Core Text打造精妙的文本布局 充分发挥Core Foundation的强大功能
關於作者:
Rob Napier,2005年开始从事Mac开发,iPhone SDK第一版发布时就开始开发iPhone应用。他是The
Daily、PandoraBoy和Cisco Mobile的作者,Stack
Overflow的主要贡献者,并且维护着技术博客Cocoaphony,主要关注组网、性能、安全和MVC模式。他自建了三套房子,喜欢徒步旅行,还是一位自豪的父亲。
Mugunth
Kumar,新加坡独立iOS开发者,拥有新加坡南洋理工大学硕士学位,主修信息系统。其个人博客(blog.mugunthkumar.com)主要发表移动开发、软件可用性、用户体验和iOS相关的文章。从事iOS开发前,他在财富500强企业通用电气和霍尼韦尔担任Windows和.NET平台软件顾问。他关注的领域包括编程方法论(面向对象和函数式编程)、移动开发以及可用性设计。不写代码的时候,他会到国外拍摄一些大自然风景。
译者简介:
陈晓亮,iOS开发工程师,主要关注Linux、Mac和iOS,喜欢Lisp,也喜欢Objective-C。
武海峰,Linux系统工程师,主要关注GNULinux和移动互联应用,热衷于开源软件。曾在商业Linux厂商和移动互联网Startup任职,从事Android系统集成、商业Linux发行版集成及移动互联网产品开发。
邓强,高级软件工程师,关注互联网行业,对互联网产品和技术有深厚兴趣,Apple粉,Google粉,Amazon粉。目前就职于美国道富银行杭州研发中心,从事金融行业软件系统开发。
周庆成,互联网与移动应用开发者,对iOS等移动系统拥有极大兴趣,开发过iPad版三人斗地主等游戏,且对于各种系统平台与编程语言都有研究。此外,他还翻译了《Objective-C基础教程(第2版)》。目前居于上海,从事游戏与网络应用开发。
目錄
第一部分  全新功能
第1章  全新的系统
1.1  新功能
1.1.1  集合视图
1.1.2  自动布局
1.1.3  自动引用计数
1.1.4  应用内购买的托管内容
1.1.5  社交框架
1.1.6  UI状态保留
1.1.7  其他新功能
1.2  小结
1.3  扩展阅读
第2章  熟悉Xcode 4和LLVM编译器
2.1  了解用户界面
2.1.1  标签式编辑器
2.1.2  按键绑定的变化
2.1.3  工程设置编辑器
2.1.4  内置的版本控制系统
2.1.5  工作区
2.2  单窗口工作方式
2.3  导航面板
2.3.1  工程导航面板
2.3.2  符号导航面板
2.3.3  搜索导航面板
2.3.4  问题导航面板
2.3.5  调试导航面板
2.3.6  断点导航面板
2.3.7  日志导航面板
2.4  辅助功能
2.5  内置的Interface Builder
2.6  Xcode之核心:LLVM编译器
2.6.1  Clang编译器前端
2.6.2  我是一个Bug!修复我
2.7  LLVM  4的新功能
2.7.1  字面量
2.7.2  字面量和可用性检查
2.7.3  实例变量的自动合成
2.8  使用Git进行版本控制
2.8.1  内置的Git版本控制系统
2.8.2  版本编辑器
2.8.3  Git最佳实践
2.9  Scheme
2.9.1  为什么使用Scheme
2.9.2  建议用Scheme实现你的意图
2.9.3  创建一个Scheme
2.9.4  共享你的Scheme
2.10  为编译配置添加注释
2.10.1  创建xcconfig文件
2.10.2  重构编译配置文件
2.11  将代码转换为支持ARC的Objective-C代码
2.12  Xcode 4 Organizer
2.12.1  Automatic Device Provisioning
2.12.2  查看崩溃日志和控制台输出
2.12.3  查看应用沙盒数据
2.12.4  管理版本库
2.12.5  管理应用程序归档
2.12.6  查看Objective-C和SDK文档
2.13  小结
2.14  扩展阅读
2.14.1  苹果文档
2.14.2  WWDC讲座
2.14.3  博客
2.14.4  网上资源
2.14.5  图书
第二部分  熟能生巧
第3章  Objective-C基础知识
3.1  命名约定
3.2  自动引用计数
3.3  属性
3.3.1  属性修饰关键字
3.3.2  属性最佳实践
3.3.3  私有实例变量
3.4  存取器
3.5  分类和扩展
3.5.1  +load方法
3.5.2  使用关联引用为分类添加数据
3.5.3  类扩展
3.6  正式协议和非正式协议
3.7  小结
3.8  扩展阅读
3.8.1  苹果文档
3.8.2  其他资源
第4章  Cocoa设计模式
4.1  理解模型·视图·控制器
4.1.1  使用模型类
4.1.2  使用视图类
4.1.3  使用控制器类
4.2  理解委托和数据源
4.3  使用命令模式
4.3.1  使用目标·动作
4.3.2  使用方法签名和调用
4.3.3  使用蹦床
4.3.4  撤销
4.4  使用观察者模式
4.5  使用单例模式
4.6  小结
4.7  扩展阅读
4.7.1  苹果文档
4.7.2  其他资源
第5章  通过Objective-C的ARC管理内存
5.1  Objective-C的ARC基础入门
5.1.1  历史简介
5.1.2  手动引用计数与自动引用计数
5.2  什么是ARC
5.2.1  在ARC工程中集成非ARC的第三方代码
5.2.2  在非ARC工程中集成ARC代码
5.2.3  框架中的ARC代码
5.2.4  ARC空声明变量
5.2.5  Objective-C命名约定
5.2.6  覆盖默认行为
5.2.7  自由桥接
5.2.8  ARC内部原理
5.3  常见的ARC移植错误
5.4  小结
5.5  扩展阅读
5.5.1  苹果文档
5.5.2  WWDC讲座
5.5.3  博客
第6章  熟练使用表视图
6.1  UITableView类的继承关系
6.2  熟悉表视图
6.2.1  UITableViewController
6.2.2  UITableViewCell
6.2.3  提高表视图的滚动速度
6.2.4  自定义非重复表单元
6.2.5  表视图最佳方案:编写简洁代码,简化控制器内容
6.3  小结
6.4  扩展阅读
6.4.1  苹果文档
6.4.2  其他资源
第7章  集合视图与自动布局
7.1  集合视图
7.1.1  类与协议
7.1.2  示例
7.2  自动布局
7.2.1  使用自动布局
7.2.2  了解自动布局
7.2.3  相对布局约束
7.2.4  视觉化格式语言
7.2.5  调试布局错误
7.3  小结
7.4  扩展阅读
7.14.1  苹果文档
7.14.2  WWDC讲座
第8章  绘图功能
8.1  iOS的不同绘图系统
8.2  UIKit和视图绘图周期
8.3  视图绘制与视图布局
8.4  自定义视图绘制
8.4.1  通过UIKit绘图
8.4.2  路径
8.4.3  理解坐标系
8.4.4  重新调整大小以及内容模式
8.4.5  变形
8.4.6  通过Core Graphics进行绘制
8.4.7  混用UIKit与Core Graphics
8.4.8  管理图形上下文
8.5  优化UIView绘制
8.5.1  避免绘图
8.5.2  缓存与后台绘制
8.5.3  自定义绘图与预渲染
8.5.4  像素对齐与模糊文本
8.5.5  透明、不透明与隐藏
8.6  CGLayer
8.7  小结
8.8  扩展阅读
8.8.1  苹果文档
8.8.2  其他资源
第9章  Core Animation
9.1  视图动画
9.2  管理用户交互
9.3  图层绘制
9.3.1  直接设置内容
9.3.2  实现display方法
9.3.3  自定义绘图
9.3.4  在自己的上下文中绘图
9.4  移动对象
9.4.1  隐式动画
9.4.2  显式动画
9.4.3  模型与表示
9.4.4  关于定时
9.5  三维动画
9.6  美化图层
9.7  用动作实现自动动画
9.8  为自定义属性添加动画
9.9  Core Animation与线程
9.10  小结
9.11  扩展阅读
9.11.1  苹果文档
9.11.2  其他资源
第10章  错误处理
10.1  错误处理模式
10.2  断言
10.3  异常
10.4  捕获与报告程序崩溃
10.5  错误和NSError
10.6  错误处理块
10.7  日志
10.7.1  记录敏感信息
10.7.2  获取日志文件
10.8  小结
10.9  扩展阅读
10.9.1  苹果文档
10.9.2  其他资源
第11章  位置服务
11.1  Core Location框架
11.1.1  获取用户位置
11.1.2  使用内置的罗盘获取用户前进方向
11.1.3  位置服务和用户隐私
11.2  后台位置服务
11.2.1  后台获取位置更新
11.2.2  显著位置变更通知
11.2.3  区域监控(地理围栏)
11.3  位置模拟
11.4  时刻关注电量消耗
11.5  小结
11.6  扩展阅读
第三部分  选择工具
第12章  表视图常用UI范例
12.1  下拉刷新
12.2  无限滚动
12.3  行内编辑与键盘
12.4  UITableView的动画效果
12.5  表视图动画的实际应用
12.5.1  实现折叠列表
12.5.2  实现选项抽屉
12.5.3  在表视图单元格中使用手势识别器
12.6  小结
12.7  扩展阅读
第13章  多任务
13.1  后台运行最佳实践:能力越大责任越大
13.2  状态恢复系统
13.2.1  测试状态恢复系统
13.2.2  选择性加入
13.2.3  应用启动过程的变化
13.2.4  状态恢复标识符
13.2.5  状态编码器与状态解码器
13.2.6  表视图和集合视图
13.2.7  状态恢复系统的高级应用
13.3  多任务和运行循环简介
13.4  以操作为中心的多任务开发
13.5  用GCD实现多任务
13.5.1  GCD和ARC
13.5.2  源和定时器
13.5.3  用分派屏障创建同步点
13.5.4  队列目标和优先级
13.5.5  分派组
13.5.6  队列关联数据
13.5.7  分派数据
13.6  小结
13.7  扩展阅读
13.7.1  苹果文档
13.7.2  WWDC讲座
13.7.3  其他资源
第14章  REST解惑
14.1  REST简介
14.2  选择数据交换格式
14.2.1  在iOS中解析XML
14.2.2  在iOS中解析JSON
14.2.3  XML与JSON
14.2.4  模型版本化
14.3  假想的Web服务
14.4  重要提醒
14.5  RESTfulEngine架构(iHotelApp示例代码)
14.5.1  NSURLConnection与第三方框架
14.5.2  创建RESTfulEngine
14.5.3  使用访问令牌对API调用进行认证
14.5.4  在RESTfulEngine.m中覆盖相关方法以添加自定义认证头部
14.5.5  取消请求
14.5.6  请求响应
14.5.7  对JSON数据进行键值编码
14.5.8  列表页面的JSON对象与详细页面的JSON对象
14.5.9  嵌套JSON对象
14.5.10  少即是多
14.5.11  错误处理
14.5.12  本地化
14.5.13  使用分类处理其他格式
14.5.14  在iOS中提升性能的小技巧
14.6  小结
14.7  扩展阅读
14.7.1  苹果文档
14.7.2  其他资源
第15章  通过安全服务巩固系统安全
15.1  理解iOS沙盒
15.2  保证网络通信的安全
15.2.1  证书工作原理
15.2.2  检验证书的有效性
15.2.3  判断证书的可信度
15.3  使用文件保护
15.4  使用钥匙串
15.5  使用加密
15.5.1  AES概要
15.5.2  使用PBKDF2将密码转换成密钥
15.5.3  AES模式和填充
15.5.4  初始化向量
15.5.5  使用HMAC进行认证
15.5.6  错误的密码
15.5.7  进行单槽加密
15.5.8  提高CommonCrypto的性能
15.5.9  组合使用加密和压缩
15.6  小结
15.7  扩展阅读
15.7.1  苹果文档
15.7.2  WWDC讲座
15.7.3  其他资源
第16章  在多个苹果平台和苹果设备上运行应用
16.1  开发多平台应用
16.1.1  可配置的目标设置:Base SDK和Deployment Target
16.1.2  支持多个SDK时的注意事项:框架、类和方法
16.1.3  检查框架、类和方法的可用性
16.2  检测设备的功能
16.2.1  检测设备及判断功能
16.2.2  检测硬件和传感器
16.3  应用内发送Email和短信
16.4  检查多任务支持
16.5  支持iPhone 5
16.6  UIRequiredDeviceCapabilities
16.7  小结
16.8  扩展阅读
16.8.1  苹果文档
16.8.2  其他资源
第17章  国际化和本地化
17.1  什么是本地化
17.2  本地化字符串
17.3  对未本地化的字符串进行审查
17.4  格式化数字和日期
17.5  nib文件和Base Internationalization
17.6  本地化复杂字符串
17.7  小结
17.8  扩展阅读
17.8.1  苹果文档
17.8.2  WWDC讲座
第18章  通过应用内购买提高销售业绩
18.1  开始之前
18.2  应用内购买什么
18.2.1  禁止通过应用内购买出售的产品
18.2.2  重新思考你的商业模式
18.3  在iTunes Connect上设置产品配置
18.3.1  第一步:为你的应用创建一个新的App ID
18.3.2  第二步:生成配置文件
18.3.3  第三步:创建应用的产品项
18.3.4  第四步:创建应用内购买产品项
18.3.5  第五步:生成共享密钥
18.3.6  第六步:创建测试账户
18.3.7  第七步:创建托管内容
18.4  实现应用内购买
18.5  MKStoreKit简介
18.5.1  为什么要用MKStoreKit
18.5.2  MKStoreKit的设计
18.5.3  定制MKStoreKit
18.6  实现购买
18.7  下载托管内容
18.8  测试代码
18.9  排错
18.9.1  无效的产品ID
18.9.2  无法连接iTunes Store
18.9.3  你已经购买了该产品,但它尚未下载
18.10  小结
18.11  扩展阅读
18.11.1  苹果文档
18.11.2  博客
18.11.3  其他资源
第19章  调试
19.1  LLDB
19.2  使用LLDB进行调试
19.2.1  dSYM文件
19.2.2  符号化
19.3  断点
19.4  观察点
19.5  LLDB控制台
19.6  NSZombieEnabled标志
19.7  不同的崩溃类型
19.7.1  EXC_BAD_ACCESS
19.7.2  SIGSEGV
19.7.3  SIGBUS
19.7.4  SIGTRAP
19.7.5  EXC_ARITHMETIC
19.7.6  SIGILL
19.7.7  SIGABRT
19.7.8  看门狗超时
19.7.9  自定义错误信号处理程序
19.8  收集崩溃报告
19.9  第三方崩溃报告服务
19.10  小结
19.11  扩展阅读
19.11.1  苹果文档
19.11.2  WWDC讲座
19.11.3  其他资源
第20章  性能调优
20.1  性能思维模式
20.1.1  指导方针一:产品是为了取悦用户才存在的
20.1.2  指导方针二:设备是为了方便用户而存在的
20.1.3  指导方针三:做到极致
20.1.4  指导方针四:用户的感知才是实际的
20.1.5  指导方针五:关注能带来大收益的方面
20.2  欢迎走入Instruments的世界
20.3  查找内存问题
20.4  查找CPU问题
20.4.1  Accelerate框架
20.4.2  GLKit
20.5  绘图性能
20.6  优化磁盘访问和网络访问
20.7  小结
20.8  扩展阅读
20.8.1  苹果文档
20.8.2  其他资源
第四部分  超越极限
第21章  故事板及自定义切换效果
21.1  初识故事板
21.1.1  实例化故事板
21.1.2  加载故事板中的视图控制器
21.1.3  联线
21.1.4  使用故事板来实现表视图
21.2  自定义切换效果
21.2.1  还有一个优点
21.2.2  白璧微瑕
21.3  使用UIAppearance协议自定义视图
21.4  小结
21.5  扩展阅读
21.5.1  苹果文档
21.5.2  WWDC讲座
21.5.3  其他资源
第22章  Cocoa的大招:键值编码和观察
22.1  键值编码
22.1.1  用KVC赋值
22.1.2  用键路径遍历属性
22.1.3  KVC和容器类
22.1.4  KVC和字典
22.1.5  KVC和非对象
22.1.6  用KVC实现高阶消息传递
22.1.7  容器操作符
22.2  键值观察
22.2.1  KVO和容器类
22.2.2  KVO是如何实现的
22.3  KVO的权衡
22.4  小结
22.5  扩展阅读
22.5.1  苹果文档
22.5.2  其他资源
第23章  不同凡想:块和函数式编程
23.1  什么是块
23.1.1  为什么要用函数式编程
23.1.2 “函数式”UIAlertView
23.2  声明块
23.2.1  变量作用域
23.2.2  栈与堆
23.3  实现块
23.4  块和并发
23.4.1  GCD中的分派队列
23.4.2  NSOperationQueue与GCD分派队列
23.5  基于块的Cocoa方法
23.5.1  UIView的动画使用块
23.5.2  展示和移除视图控制器
23.5.3  TweetComposer 与应用程序中发送邮件(短信)
23.5.4  用NSDictionary的enum erationWithBlock遍历字典
23.5.5  寻找基于块的方法
23.6  支持情况
23.7  小结
23.8  扩展阅读
23.8.1  苹果文档
23.8.2  博客
23.8.3  其他资源
第24章  离线支持
24.1  需要离线支持的原因
24.2  缓存策略
24.2.1  存储缓存
24.2.2  缓存版本和失效
24.3  数据模型缓存
24.4  缓存版本控制
24.5  创建内存缓存
24.5.1  为AppCache设计内存缓存
24.5.2  处理内存警告
24.5.3  处理结束和进入后台通知
24.6  创建URL缓存
24.6.1  过期模型
24.6.2  验证模型
24.6.3  示例
24.6.4  用URL缓存来缓存图片
24.7  小结
24.8  扩展阅读
24.8.1  苹果文档
24.8.2  书籍
24.8.3  其他资源
第25章  云端数据
25.1  iCloud
25.2  第三方云服务提供商
25.3  Parse
25.3.1  Parse入门
25.3.2  Parse的顶层对象
25.3.3  代码
25.4  StackMob
25.4.1  设置StackMob
25.4.2  登录、上传和获取数据
25.4.3  StackMob自定义代码
25.5  后端即服务的缺点
25.6  小结
25.7  扩展阅读
25.7.1  苹果文档
25.7.2  WWDC讲座
25.7.3  其他资源
第26章  精妙的文本布局
26.1  基本控件:字段、视图和标签
26.2  UIKit中的富文本
26.2.1  理解粗体、斜体和下划线
26.2.2  属性化字符串
26.2.3  段落样式
26.2.4  属性化字符串和HTML
26.3  用Web视图显示富文本
26.3.1  在Web视图中显示和访问HTML
26.3.2  响应用户交互
26.3.3  在滚动视图和表格视图中绘制Web视图
26.4  Core Text
26.4.1  用CTFramesetter进行简单的布局
26.4.2  为非连续路径创建框架
26.4.3  排版器、文本行、连续文本和字形
26.4.4  沿着曲线绘制文本
26.5  小结
26.6  扩展阅读
26.6.1  苹果文档
26.6.2  WWDC讲座
26.6.3  其他资源
第27章  创建Core Foundation应用
27.1  Core Foundation类型
27.2  命名和内存管理
27.3  分配器
27.4  内省
27.5  字符串和数据
27.5.1  常量字符串
27.5.2  创建字符串
27.5.3  转换为C字符串
27.5.4  其他字符串操作符
27.5.5  字符串的支持存储
27.5.6  CFData
27.6  容器类型
27.6.1  CFArray
27.6.2  CFDictionary
27.6.3  CFSet和CFBag
27.6.4  其他容器类型
27.6.5  回调函数
27.7  自由桥接
27.8  小结
27.9  扩展阅读
27.9.1  苹果文档
27.9.2  其他资源
第28章  深度解析Objective-C
28.1  理解类和对象
28.2  使用方法和属性
28.3  消息传递如何工作
28.3.1  动态实现
28.3.2  快速转发
28.3.3  普通转发
28.3.4  转发失败
28.3.5  各种版本的objc_msgSend
28.4  方法混写
28.5  ISA混写
28.6  方法混写与ISA混写
28.7  小结
28.8  扩展阅读
28.8.1  苹果文档
28.8.2  其他资源
索引
內容試閱
苹果操作系统历来都是一个面向用户的版本,一个面向开发者的版本,这样交替着发布。iOS
6更多关注用户,具有全新的地图界面和导航功能,社交网络特性更是随处可见。Pass
Kit更以一种全新的方式将iPhone与日常生活联系到了一起。增强的Siri功能使iPhone
4S更具吸引力。但愿用户能快一点升级。
这都是好消息,因为iOS
6同样也令开发人员兴奋不已。很多事物变得更加简单,集合视图与自动布局可以简化UI设计,UIKit添加了对富文本的支持。当你的应用进入后台,状态保留可以更加容易记录它们的进度。很多过去复杂麻烦的东西开始变得简单了。
如果你准备好了去探索最新的苹果系统,从而把你的应用提升到新高度,那这本书就是你应该看的。
读者对象
这并不是一本入门书。其他一些书会教你Objective-C并一步步指导你学习Interface
Builder,不过本书假定你已经拥有一些iOS开发经验;可能是自学的,或者上过培训班。总之,你有能力写程序,甚至已经有应用上架了。如果你打算学习更深入的内容、最佳实践,以及作者源自真实工程的开发经验,那你就找对书了。
这本书并不是示例的简单堆砌,它包含大量代码,不过主线还是围绕如何设计、编写和维护优秀的iOS应用展开。本书会让你了解为什么这么做而不只是局限于怎么做。你会学到很多关于设计模式、编写可重用代码,以及语法与新框架的知识。
本书内容
iOS平台总是向前发展,本书也一样。书中大部分示例需要至少iOS 5才能运行,有些需要iOS
6。所有的示例都启用了自动引用计数、自动属性合成和对象字面量。除了很少几处外,本书不会讨论向后兼容。如果你的代码过于庞大必须要向后兼容,你可能知道如何处理。本书主旨是通过最好的特性来创造最佳应用。
虽然本书主要针对iPhone 4、iPad 2之后的设备,但大部分内容也适用于第一代iPad、iPod touch、iPhone
3GS以及Apple TV。第16章还会专门讨论如何处理各个平台之间的差异。
新版内容
这一版涵盖了iOS
6的大部分新功能,包括集合视图和自动布局(第7章),还有一整章介绍自动引用计数。本书新增一章讲解如何将数据上传到云端,介绍了一些第三方BaaS(Backend
as a
Service,后端即服务)。本书还扩展了iOS相关的内容,主要涵盖改进后的LLVM编译器与调试器。为此,我们增加了第2章LLVM一节的篇幅,针对如何使用它写出下一代应用讲解了LLVM的重要特性。它还添加了一章(第19章)专门介绍LLDB调试,包括Python脚本、寄存器布局和读取寄存器等一些有助于解决调试难题的高级技巧。这一章还提到了otool、atos等可以辅助调试的命令行工具。最后,第20章展示了如何围绕CPU性能、内存占用、网络带宽以及电池使用进行优化。
即便你有本书的上一版,关于调试(第19章)、性能调优(第20章)以及集合视图和自动布局(第7章)的新内容也足够成为你买下这一版的理由了。
本书结构
iOS提供了非常丰富的工具,既有UIKit这样的高层框架,也有Core
Text这样的低层框架。有时候,同一个目标可以通过多种方式来达成。作为开发人员,如何找到最正确的工具呢?
本书既考虑了日常开发需求,也考虑了特定的用途,能够帮你作出正确的选择。学完本书,你会明白每个框架存在的价值、框架之间的相互关系,以及什么时候选择哪一个。最终,你会知道哪个框架最适合解决哪一类问题。
本书分4部分,从最常用的工具一直讲到最强大的工具。这一版新增的章会在前面用“更新”字样标识出来。
第一部分:新功能
如果你对iOS 5很熟悉,这一部分可以带你快速了解iOS 6的新功能。
· (更新)第1章“全新的系统”。iOS 6增加了大量新功能,在这里你将快速了解它们。
· (更新)第2章“熟悉Xcode
4与LLVM编译器”。Xocde是一个庞大的IDE,很多功能并不显而易见。无论你是新手还是上一版的读者,这一章都会帮助你了解它强大(也有令人沮丧)的工具。
第二部分:熟能生巧
作为一名iOS开发人员,你应该掌握很多常用工具,比如表视图通知和动画图层。不过要想发挥它们的全部潜力,就要熟悉它们。在这一部分,我们将学到Cocoa开发的最佳实践。
·
第3章“Objective-C基础知识”。如果你想在Objective-C开发方面更上一层楼,这一章将引导你学习一些改善应用设计、稳定性和可重用性的常用工具。
·
第4章“Cocoa设计模式”。Cocoa建立于大量常用的设计模式之上。这一章会介绍相关的设计模式和苹果用它们来解决问题的思路。
·
(新增)第5章“通过Objective-C的ARC管理内存”。自动引用计数根本改变了iOS开发者的工作方式。大部分转换也很容易,移植代码时可能会出现一些微妙的问题。本章讨论如何避开问题和充分利用这个强大的技术。
·
第6章“熟练使用表视图”。表视图可能是iOS中最复杂但也最常用的UI元素了。它们的设计非常简单优雅,但不了解原理却很难用好。这一章将为你讲清楚如何正确使用它们,以及如何解决无限滚动等问题。
· (新增)第7章“集合视图与自动布局”。WWDC
2012中展示的UICollectionView令世人瞩目。到目前为止,UITableView仍然垄断着iOS应用的界面。不过当开发人员慢慢习惯新控件后,这个局面很可能在iOS
6时代被改变。加上OS
X中基于约束(constraint-base)的布局,实现复杂而美观的界面突然变得简单起来。这一章的内容就是这些。
· 第8章“绘图功能”。很多新开发者都对自定义绘图退避三舍,但它却是快速创建美观用户界面的关键。这一章将探究UIKit和Core
Graphics中有关绘图的功能,告诉大家怎么才能做到既快且美。
· 第9章“Core Animation”。iOS设备对动画的支持是无与伦比的。借助强大的GPU和高度优化的Core
Animation,你可以创建直观又吸引人的界面。在这一章中,我们会介绍一些基础知识以及动画的原理。
·
第10章“错误处理”。你总想写出完美的代码,不过每每又事与愿违。如何应对意外是优秀应用与一般应用的分水岭。这一章会告诉你常用的错误处理技巧、如何记录错误,以及如何让代码在出错时表现得更加灵活。
·
(新增)第11章“位置服务”。许多应用都需要知道用户在什么地方。iOS使一切变得简单,但也要警惕不要把电量耗尽。这一章我们讲一讲如何平衡功能与效率,同时给予用户最佳体验。
第三部分:选择工具
有些工具几乎时刻都要用,而有些工具则只有特定的时候才有用。在这一部分中,你会学到这些较为特殊的工具以及相关的技术。
·
(新增)第12章“表视图常用UI范例”。与集合视图一样令人欲罢不能的是表视图,它一直是iOS开发的中坚力量。这一章介绍如何使用高级表视图的无限滚动视图和其他高级主题。
· (更新)第13章“多任务”。多任务是许多应用程序的重要部分,这一章将介绍如何在应用程序运行时或在后台时执行多任务。iOS
6新的状态保留系统使这一切更加容易,这一章还会介绍一些常见用例。
· (更新)第14章“REST解惑”。基于REST的服务是现代应用程序的核心,这一章将教会你在iOS中最好地实现它们。
·
(更新)第15章“通过安全服务巩固系统安全”。用户安全和保护隐私永远是第一位的。这一章会介绍如何通过钥匙串、证书和密码保护应用和用户数据不会被盗用。
· 第16章“在多个苹果平台和苹果设备上运行应用”。iOS家族人丁兴旺,不仅有了iPod
touch、iPhone、iPad、Apple
TV,而且新机型仍会不断涌现。目前还无法一次编写随处运行。为了保证应用在任何平台上都表现卓越,本章将讨论如何基于硬件和平台调整应用。
·
第17章“国际化和本地化”。虽然你现在可能只想关注某个国家的市场,但让应用明天能够顺利走向世界也只需做一点点工作。本章会告诉你如何不影响当前开发,又能减少未来的麻烦和成本。
·
第18章“通过应用内购买提高销售业绩”。应用内购买对于很多程序员来说仍然是陌生领域。用户喜欢额外内容,而开发人员喜欢额外收入。这一章告诉你在应用中把这一功能变为现实的最佳方法。
·
(新增)第19章“调试”。要是每个应用第一次就能完美运行该有多好。幸运的是,Xcode和LLDB提供了很多能帮助你抓住“狡猾”bug的工具。你会学到很多高级的内容,了解实际开发中如何处理错误。
·
(全新)第20章“性能调优”。高性能可以让应用脱颖而出。优化CPU和内存性能非常重要,不过你也需要优化电池以及网络使用。苹果公司提供了Instruments这个强大的工具来解决这些问题。你会学到如何使用Instruments查找瓶颈,以及如何在找到问题后改善性能。
第四部分:超越极限
这一部分是全书最精彩的内容。你已经学到了基础知识,掌握了基本技能,现在该使用高级工具来超越极限了。这一部分将带你深入了解iOS。
·
(新增)第21章“故事板及自定义切换效果”。故事板仍然会使一些熟悉Nib文件的开发人员感到费解。你在这里将会学到如何使用故事板来提升应用。
· 第22章“Cocoa的大招:键值编码和观察”。苹果的许多强大框架都是依靠KVO(Key-Value
Observing)来维护性能和灵活性的。你会学到如何利用灵活性和KVO的速度。
·
第23章“不同凡响:块和函数式编程”。许多开发人员依然对Objective-C的块感到好奇。块可以用来与苹果框架交互,不过也开启了编程新思路。接受一种新风格,并在你的下一个工程中将它的优势表现出来吧。
·
第24章“离线支持”。网络编程很困难,不过更难的是支持无缝离线功能。学习如何最佳地缓存数据并将其集成到你的网络引擎上是这一章的重点。
·
(新增)第25章“云端数据”。开发人员依然在适应新的iCloud服务。支持的话可以快速让你的应用程序引入注目。本章中你将学习这个强大的系统。
· (更新)第26章“精妙的文本布局”。从UIKit到Core
Text,iOS为显示文本提供了充足的功能。iOS又在UIKit中添加了富文本支持。在这一章,你会学到如何使用属性化字符串、Web视图,以及用Core
Text来处理最棘手的布局问题。
· 第27章“创建Core Foundation应用”。说到iOS中最强大的框架,你能想到的Core框架可能会有Core
Graphics、Core Animation、Core Text,但它们都是基于Core
Foundation框架的。在这一章中,我们学习如何使用Core
Foundation数据类型,以便充分利用iOS提供的功能。
·
第28章“深度解析Objective-C”。这一章致力于揭开Objective-C背后的秘密,包括如何使用Ojective-C运行时直接动态地修改类和方法、如何通过Objective-C函数调用C方法,以及如何通过系统来扩展程序。
以上各章可以跳读,除了需要Core Foundation数据对象(特别是Core Graphics、Core
Animation和Core Text)的几章,其他章都是相互独立的。关于Core
Foundation的内容,最终会归总到第27章“创建Core Foundation应用”。
阅读条件
本书所有示例都是用Mac OS X 10.8上的Xcode 4.5以及iOS
6开发的。你需要一个苹果开发人员账户来访问大部分工具和文档,并且需要一个开发人员许可证来运行iOS设备上的应用程序。对此,请参考并注册账号。
本书中大部分示例可以在Xcode 4.5的iOS模拟器中运行。使用iOS模拟器就不需要苹果开发人员许可证了。
苹果文档
苹果公司在自己的网站上和Xcode中提供了大量文档。这些文档的URL地址变动很频繁而且非常长。本书会使用标题而不是URL来引用这些文档。如果想在Xcode中寻找文档,请按下Cmd-Option-·快捷键或点击Help-Docuentation
and API Reference。在Documentation
Organizer窗口中点击搜索图标,输入文档的标题,并从搜索结果中选择文档。可以参考图1中搜索Coding Guidelines
for Cocoa的示例。
图1 搜索Coding Guidelines for Cocoa
如果想在苹果官方网站查找文档,可以访问http:developer.apple.com,点击Member
Center,并登录。选择iOS Dev Center,并在搜索框中输入文档的标题。
在线文档与Xcode文档是相同的。你可能会接收到iOS和Mac两个平台的结果,请阅读iOS版。很多iOS文档是Mac版的副本并且偶尔会包含iOS不支持的函数调用或常量。本书会告诉你哪些功能在iOS上可用。
源代码
在学习本书示例的时候,可以手工输入代码,也可以使用本书附带的源代码文件。本书所有的源代码可以在网站上下载得到。
下载之后,在第26章文件夹SimpleLayout工程的CoreTextLabel.m文件中可以看到如下代码:
CoreTextLabel.m(SimpleLayout)
- idinitWithFrame:CGRectframe {
if self = [super initWithFrame:frame] {
CGAffineTransform
transform = CGAffineTransformMakeScale1, -1;
CGAffineTransformTranslatetransform,
0, -self.bounds.size.height;
self.transform = transform;
self.backgroundColor = [UIColor whiteColor];
}
return self;
}
本书中有些代码片段并不完整,其目的只是为了辅助上下文说明问题。要想查看完整代码,就需要参考下载到的源代码。
勘误
虽然我们已经尽了最大努力,但错误在所难免。有些是输入错误,有些可能是我们理解上有偏差,有些可能是因为内容有变化。为了确保代码与时俱进,请参考网站上的最新版本,以及博客中的相关文章。
致谢
在去年投入大量时间撰写针对iOS 5的本书上一版之后,今年又着手撰写针对iOS
6的这个新版本,对此Rob非常感谢自己家人的耐心。Mugunth感谢父母和朋友的支持。感谢Wiley出版社,尤是Craig
Smith和Ellie Scott,在他们不懈的支持、鼓励下本书才得以问世。感谢Jay Thrash热心的技术审校,还有Tom
Dinse对文字的润色。感谢WWDC的苹果工程师们容忍我们无穷无尽的疑问、追寻,还有偶尔的抱怨。特别感谢史蒂夫·乔布斯,他毕生致力于改变世界。人们不会忘记他。

 

 

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