
移动开发经典丛书:Objective-C开发经典教程
《移动开发经典丛书:Objective-C开发经典教程》快速为读者铺垫好Mac和iOS平台上的基础知识和Objective—C的惯用语法,以学习如何最佳地构建套用和库,如何最佳使用该语言提供的工具——无论读者计画构建什幺样的项目。《移动开发经典丛书:Objective-C开发经典教程》详尽介绍了Objective—C的核心原则及其主要工具箱:Foundation和AppKit架构。
基本介绍
- 书名:移动开发经典丛书:Objective-C开发经典教程
- 出版社:清华大学出版社
- 页数:330页
- 开本:16
- 定价:59.80
- 作者:达维 (James Dovey) 弗罗 (Ash Furrow)
- 出版日期:2014年1月1日
- 语种:简体中文, 英语
- ISBN:9787302346678
- 品牌:清华大学出版社
基本介绍
内容简介
《移动开发经典丛书:Objective-C开发经典教程》中提供了一个涉及很多主题的知识宝库,包括使用档案系统和网路APIs,并发和多核编程,用户界面系统架构,数据建模,等等。
作者简介
作者:(美国)达维(James Dovey) (美国)弗罗(Ash Furrow) 译者:冯宝隆 于鹏飞
达维(James Dovey),已经独立为Macintosh(以及之后的iOS)编写了12年软体。他出生于英国,在加拿大多伦多柯保公司(Kobo)工作,在那里一直担任公司iOS应用程式首席架构师,但最近他担任出版业和各种标準委员会的联繫人,并且在办公室里扛着一个上面写着“实现ePub3”的大棒子(实际上这个大棒子看起来像是某种马里特木锤——读者可自行用Google搜寻它)。作为一个黑客(这是个问题吗?请问我们能把它当作一个问题吗?),他是很多开源项目的建立者,这些开源项目包括AQGridView,该项目是原始的iOS表格视图控制项;AQXMLParser,iPhone最好的基于事件的XML解析器;以及原始的AppleTV第三方开发工具。他还开发了Outpost,即最初的iPhoneBasecamp客户端,还建立了基于AppleTV的数位讯号系统。本书是他的第一本书,但他希望将来能出更多的书。
弗罗(Ash Furrow),从iOS2开始就在编写iOS应用程式。在完成他的学士学位时,他开发了用于地方选举的iOS应用程式并在新不伦瑞克大学教授iOS开发。他还开发了几个自己的应用程式(在AppStore上销售)并发布开源项目。在2011年,他为了在500px工作移居到多伦多并开发了现在广为流行的iOS应用程式。当前,Ash是500pxiOS组的首席开发者。他还喜欢发推特、写部落格和摄影。
达维(James Dovey),已经独立为Macintosh(以及之后的iOS)编写了12年软体。他出生于英国,在加拿大多伦多柯保公司(Kobo)工作,在那里一直担任公司iOS应用程式首席架构师,但最近他担任出版业和各种标準委员会的联繫人,并且在办公室里扛着一个上面写着“实现ePub3”的大棒子(实际上这个大棒子看起来像是某种马里特木锤——读者可自行用Google搜寻它)。作为一个黑客(这是个问题吗?请问我们能把它当作一个问题吗?),他是很多开源项目的建立者,这些开源项目包括AQGridView,该项目是原始的iOS表格视图控制项;AQXMLParser,iPhone最好的基于事件的XML解析器;以及原始的AppleTV第三方开发工具。他还开发了Outpost,即最初的iPhoneBasecamp客户端,还建立了基于AppleTV的数位讯号系统。本书是他的第一本书,但他希望将来能出更多的书。
弗罗(Ash Furrow),从iOS2开始就在编写iOS应用程式。在完成他的学士学位时,他开发了用于地方选举的iOS应用程式并在新不伦瑞克大学教授iOS开发。他还开发了几个自己的应用程式(在AppStore上销售)并发布开源项目。在2011年,他为了在500px工作移居到多伦多并开发了现在广为流行的iOS应用程式。当前,Ash是500pxiOS组的首席开发者。他还喜欢发推特、写部落格和摄影。
图书目录
第1章Objective—C入门
1.1Xcode
1.2创建你的第一个项目
1.2.1应用程式模板
1.2.2界面生成器
1.2.3用户界面控制项
1.2.4界面绑定
1.2.5运行应用程式
1.3语言基础
1.3.1类型和变数
1.3.2指针
1.3.3函式和声明
1.3.4作用域
1.3.5条件
1.3.6循环
1.3.70bjective—C的附加功能
1.4小结
第2章面向对象编程
2.1对象:类和实例
2.1.1封装
2.1.2继承
2.20bjective—C中的对象
2.3编写Objective—C代码
2.3.1记忆体分配和初始化
2.3.2传送讯息
2.3.3记忆体管理
2.3.4类接口
2.3.5方法
2.3.6属性
2.3.7协定
2.3.8实现
2.4小结
第3章FoundationAPI
3.1字元串
3.2数字
3.3数据对象
3.4容器
3.4.1数组
3.4.2集合
3.4.3字典
3.5编写自己的代码
3.6反射(Reflection)和类型内省
3.7执行绪和大中央调度
3.8运行循环
3.9编码器和解码器
3.10属性列表
3.11小结
第4章Objective—C语言特性
4.1强引用和弱引用
4.2自动释放池
4.3异常
4.4同步
4.5深入:讯息
4.5.1讯息方向
4.5.2传送讯息
4.6代理和讯息转发
4.7块代码
4.7.1词法闭包
4.7.2大中央调度
4.8小结
第5章使用档案系统
5.1档案、资料夹和URL
5.1.1URL
5.1.2创建和使用URL
5.1.3管理资料夹和位置
5.1.4访问档案内容
5.1.5随机访问档案
5.1.6流化档案内容
5.2档案系统变化协调
5.2.1档案呈现器
5.2.2尝试
5.3使用Spotlight搜寻
5.4云档案
5.5小结
第6章网路:连线、数据和云4
6.1基本原则
6.1.1网路延迟
6.1.2异步性
6.1.3套接字、连线埠、流和数据报
6.2CocoaURL载入系统
6.2.1使用NSURLConnection
6.2.2身份验证
6.2.3URL连线数据的处理
6.2.4网路流
6.3网路数据
6.3.1读取和写入JSON
6.3.2使用XML
6.4网路服务地点
6.4.1服务解决方案
6.4.2发布服务
6.5小结
第7章用户界面:ApplicationKit
7.1编程实践:模型视图控制器
7.2视窗、面板和视图
7.2.1控制项
7.2.2按钮
7.2.3文本输入
7.3InterfaceBuilder
7.4布局和动画
7.4.1动画
7.4.2布局和渲染流
7.5绘製用户界面
7.6视频回放
7.6.1定义文档
7.6.2用户界面
7.6.3文档代码
7.6.4结合在一起
7.7小结
第8章数据管理与CoreData
8.1CoreData介绍
8.1.1对象模型组件
8.1.2到底是谁的错?
8.2创建对象模型
8.2.1更好的模型
8.2.2关係和抽象实体
8.2.3自定义类
8.2.4临时属性
8.2.5验证
8.2.6启动它
8.2.7持久存储选项
8.3多执行绪和CoreData
8.3.1约束
8.3.2私有伫列
8.3.3主执行绪伫列
8.3.4分层上下文
8.3.5实现执行绪安全上下文
8.4填充存储
8.5用户界面
8.5.1排序次序
8.5.2对其布局
8.5.3添加和移除联繫人
8.5.4查看地址
8.5.5一个更複杂的单元格视图
8.6小结
第9章编写应用程式
9.1启用iCloud
9.2启用应用程式沙箱
9.3CoreData和iCloud
9.4共享数据
9.4.1创建XPC服务
9.4.2远程访问协定
9.4.3初始化连线
9.5实现浏览器
9.6发布的数据
9.6.1成为发布者
9.6.2提供数据
9.7服务端网路
9.8数据编码
9.8.1编码其他数据
9.8.2编码命令
9.9客户端和命令
9.9.1传入的命令数据
9.9.2传送回响
9.9.3命令处理
9.10访问远程地址簿
9.10.1联繫
9.10.2实现远程地址簿
9.11显示远程地址簿
9.11.1浏览器界面
9.11.2查看远程地址簿
9.12小结
第10章编码之后:发布应用程式
10.1iOS如何?
10.2发布应用程式
10.2.1开发者证书实用工具
10.2.2设定应用程式
10.2.3应用程式商店
10.2.4开发者标识发布
10.3小结
1.1Xcode
1.2创建你的第一个项目
1.2.1应用程式模板
1.2.2界面生成器
1.2.3用户界面控制项
1.2.4界面绑定
1.2.5运行应用程式
1.3语言基础
1.3.1类型和变数
1.3.2指针
1.3.3函式和声明
1.3.4作用域
1.3.5条件
1.3.6循环
1.3.70bjective—C的附加功能
1.4小结
第2章面向对象编程
2.1对象:类和实例
2.1.1封装
2.1.2继承
2.20bjective—C中的对象
2.3编写Objective—C代码
2.3.1记忆体分配和初始化
2.3.2传送讯息
2.3.3记忆体管理
2.3.4类接口
2.3.5方法
2.3.6属性
2.3.7协定
2.3.8实现
2.4小结
第3章FoundationAPI
3.1字元串
3.2数字
3.3数据对象
3.4容器
3.4.1数组
3.4.2集合
3.4.3字典
3.5编写自己的代码
3.6反射(Reflection)和类型内省
3.7执行绪和大中央调度
3.8运行循环
3.9编码器和解码器
3.10属性列表
3.11小结
第4章Objective—C语言特性
4.1强引用和弱引用
4.2自动释放池
4.3异常
4.4同步
4.5深入:讯息
4.5.1讯息方向
4.5.2传送讯息
4.6代理和讯息转发
4.7块代码
4.7.1词法闭包
4.7.2大中央调度
4.8小结
第5章使用档案系统
5.1档案、资料夹和URL
5.1.1URL
5.1.2创建和使用URL
5.1.3管理资料夹和位置
5.1.4访问档案内容
5.1.5随机访问档案
5.1.6流化档案内容
5.2档案系统变化协调
5.2.1档案呈现器
5.2.2尝试
5.3使用Spotlight搜寻
5.4云档案
5.5小结
第6章网路:连线、数据和云4
6.1基本原则
6.1.1网路延迟
6.1.2异步性
6.1.3套接字、连线埠、流和数据报
6.2CocoaURL载入系统
6.2.1使用NSURLConnection
6.2.2身份验证
6.2.3URL连线数据的处理
6.2.4网路流
6.3网路数据
6.3.1读取和写入JSON
6.3.2使用XML
6.4网路服务地点
6.4.1服务解决方案
6.4.2发布服务
6.5小结
第7章用户界面:ApplicationKit
7.1编程实践:模型视图控制器
7.2视窗、面板和视图
7.2.1控制项
7.2.2按钮
7.2.3文本输入
7.3InterfaceBuilder
7.4布局和动画
7.4.1动画
7.4.2布局和渲染流
7.5绘製用户界面
7.6视频回放
7.6.1定义文档
7.6.2用户界面
7.6.3文档代码
7.6.4结合在一起
7.7小结
第8章数据管理与CoreData
8.1CoreData介绍
8.1.1对象模型组件
8.1.2到底是谁的错?
8.2创建对象模型
8.2.1更好的模型
8.2.2关係和抽象实体
8.2.3自定义类
8.2.4临时属性
8.2.5验证
8.2.6启动它
8.2.7持久存储选项
8.3多执行绪和CoreData
8.3.1约束
8.3.2私有伫列
8.3.3主执行绪伫列
8.3.4分层上下文
8.3.5实现执行绪安全上下文
8.4填充存储
8.5用户界面
8.5.1排序次序
8.5.2对其布局
8.5.3添加和移除联繫人
8.5.4查看地址
8.5.5一个更複杂的单元格视图
8.6小结
第9章编写应用程式
9.1启用iCloud
9.2启用应用程式沙箱
9.3CoreData和iCloud
9.4共享数据
9.4.1创建XPC服务
9.4.2远程访问协定
9.4.3初始化连线
9.5实现浏览器
9.6发布的数据
9.6.1成为发布者
9.6.2提供数据
9.7服务端网路
9.8数据编码
9.8.1编码其他数据
9.8.2编码命令
9.9客户端和命令
9.9.1传入的命令数据
9.9.2传送回响
9.9.3命令处理
9.10访问远程地址簿
9.10.1联繫
9.10.2实现远程地址簿
9.11显示远程地址簿
9.11.1浏览器界面
9.11.2查看远程地址簿
9.12小结
第10章编码之后:发布应用程式
10.1iOS如何?
10.2发布应用程式
10.2.1开发者证书实用工具
10.2.2设定应用程式
10.2.3应用程式商店
10.2.4开发者标识发布
10.3小结
文摘
着作权页:
手动引用计数:这是指由程式设计师调用—retain、—release和—autorelease方法来管理单个对象的引用计数。这已经成为iOS 5:0之前以及历代OSX中使用的标準模式。
垃圾回收(Garbage Collection,Gc):伴随着OS X 10.4韵到来,Objective—C获得了一种与其他许多当代程式语言相似的、自动管理记忆体的垃圾回收器。这使引用计数方式变得不那幺必要,它也能套用到系统中使用C语言代码做出的任何记忆体申请上。它也提供了一个非常有用的“弱引用归零”;系统。通过它,指向对象的弱引用能一直保留,直至引用计数归零才失效。一亘对象被删除,所有指向它的弱引用也都会被置为0。但是,垃圾回收机制需要大量的资源,它太消耗资源,从而不能在iPhone或iPad平台上部署。也因如此,在OS X上对垃圾回收机制的使用也被正式弃用,取而代之的是列表中的下一项。
自动引用计数(Automatic Reference Countin9,ARC):在OS X 10.7 Lion和iOS 5.0中介绍过(也能在认可的OS X 10.6和iOS 4中执行)的ARC技术把引用计数机制植入语声运行时,并且加强了LLVM编译器对它的支持(想了解LLVM和其他OS X上的编译器的更多信息,请参阅附文“编译”)。这个机制使编译器可以準确地判定对象在哪里保留、释放,以及自动释放,这意味着这项工作是由编译器完成的,而非程式设计师。ARC也包含了通过0S X的垃圾回收器生效的弱引用归零系统。ARC和GC之间的区别在于:GC会让对象积聚起来并且在一个特定的间隔之后释放,ARC只是简单地替你插入相应的retain/release调用。因此没有记忆体积聚,也没有高系统开销的收集阶段。事实上,编译器会严谨地最佳化整个retaielease循环。
手动引用计数:这是指由程式设计师调用—retain、—release和—autorelease方法来管理单个对象的引用计数。这已经成为iOS 5:0之前以及历代OSX中使用的标準模式。
垃圾回收(Garbage Collection,Gc):伴随着OS X 10.4韵到来,Objective—C获得了一种与其他许多当代程式语言相似的、自动管理记忆体的垃圾回收器。这使引用计数方式变得不那幺必要,它也能套用到系统中使用C语言代码做出的任何记忆体申请上。它也提供了一个非常有用的“弱引用归零”;系统。通过它,指向对象的弱引用能一直保留,直至引用计数归零才失效。一亘对象被删除,所有指向它的弱引用也都会被置为0。但是,垃圾回收机制需要大量的资源,它太消耗资源,从而不能在iPhone或iPad平台上部署。也因如此,在OS X上对垃圾回收机制的使用也被正式弃用,取而代之的是列表中的下一项。
自动引用计数(Automatic Reference Countin9,ARC):在OS X 10.7 Lion和iOS 5.0中介绍过(也能在认可的OS X 10.6和iOS 4中执行)的ARC技术把引用计数机制植入语声运行时,并且加强了LLVM编译器对它的支持(想了解LLVM和其他OS X上的编译器的更多信息,请参阅附文“编译”)。这个机制使编译器可以準确地判定对象在哪里保留、释放,以及自动释放,这意味着这项工作是由编译器完成的,而非程式设计师。ARC也包含了通过0S X的垃圾回收器生效的弱引用归零系统。ARC和GC之间的区别在于:GC会让对象积聚起来并且在一个特定的间隔之后释放,ARC只是简单地替你插入相应的retain/release调用。因此没有记忆体积聚,也没有高系统开销的收集阶段。事实上,编译器会严谨地最佳化整个retaielease循环。