《Cocoa编程开发者手册》编著者奇斯纳尔。
Cocoa编程环境——Apple的一套非常强大的、干净的、面向对象的API——正日益成为几乎所有当代Mac os
x开发的基础。经过了长时间的不断完善和改进,Cocoa已经成熟,形成了一个综合的编程环境,可用于陕速高效地开发Mac os
x应用,甚至使其富有乐趣。
然而,Cocoa家族API惊人的规模,还有海量的官方文档,可能会吓到你,甚至是经验丰富的程序员。为了帮助Mac os
x开发人员梳理和实际使用Cocoa的众多工具和技术,本书对Mac os x上的Cocoa
API做了一个导览,深入讨论和实践展示了Cocoa的核心框架和其他重要组件,同时还提请读者注意一些更有趣,但往往被忽视的API和工具。本书以专家级的视角,对于从用户界面设计,到网络编程和性能优化等诸多重要主题进行了探讨。
內容簡介:
《Cocoa编程开发者手册》编著者奇斯纳尔。
《Cocoa编程开发者手册》是关于Mac OS X上 Cocoa
API的指南,涵盖了从用户界面到网络编程各
个方面的特性。本书共七个部分,详细叙述了核心的框架,以及其他许多用来构建丰富应用程序的组件,
指出了庞大的API中最有价值的地方,指引读者进一 步学习。
本书适合Mac OS X应用程序开发人员及爱好者阅 读。
關於作者:
作者:(美国)奇斯纳尔(David Chisnall) 译者:江疆 杨武 李亮 霍炬
David
Chlsnall,作为实现者和开发人员。他对于Cocoa有着深入的了解。他是GNUstep项目(提供Cocoa
APl的开源实现)的活跃贡献者。参与开创了Etoilé项目来构建GNUstep上的桌面环境。他还创建过一个新的Objective—C运行库,为clan9编译器提供Objective—C支持,发表过关于ObjectiVe—C的论文。他为informlT.com撰写过一个关于Objective—C和CoCoa的系列文章,非常受欢迎。他还是The
DefinitiveGuide to the Xen
Hypervisor(Addison—Wesley,2008)一书的作者。
第1章 Cocoa与Mac OS X
1.1.1 Carbon
在Mac OS X之前, 有Classic
MacOS它在大部分时间都叫做AppleSystem,只是最后几个版本才叫做Mac
OS。它诞生于1984年,后来又经过了不断改进。该系统是从Motorola的68000系列架构移植到Apple、IBM和Motorola联合开发的PowerPC架构下的,包含有一个运行老代码用的模拟器。早期的基于PowerPC的机器要比基于当时最快的Motorola
68040的机器慢,因为很多操作系统代码和大多数程序都运行在模拟器中。
最初的版本中的图形用户界面固化在ROM中,叫做Macintosh
Toolbox。后来随着内存曰渐丰富起来,它就被要载入到内存的新版本取代了,。
随着Mac
OS的退出已成定局,Toolbox的末日也随之而来。为了简化迁移过程,Apple发布了一个整理后的APICarbon。它运行在Mac
OS 8.1及以后的版本上。
Carbon
API和老的工oolbox有很多重叠的部分。对有些程序,从Toolbox切换到Carbon只需重新编译即可,大部分程序也只需很小的修改。这个过程叫做碳化carbonization。
在OS X
l0.0中Carbon和Cocoa都是一等公民。有些核心程序如Finder就是用Carbon写的。早期版本的Carbon有些限制,如无法访问服务service。混用Carbon和Cocoa也曾很困难,因为事件模型不一样。这些限制后来逐步清除掉了。似乎Carbon会在OS
X中存在很久。
可就在2007年,改变发生了,Apple公司宣布Carbon不会升级到64位。而此前Apple已经在PowerPC
G5中发布了64位的芯片。在PowerPC架构下,大多数程序升级到64位意义都不大。指针变长了会增加缓存使用,不过其他地方没什么不同。但切换到Intel芯片以后就有变化了。x86.64架构相对32位版本的提升很大,包含更快的调用约定、更简单的内存模型、更多的寄存器,以及更好的浮点运算支持。
Carbon虽然还在,但已被降级为Mac OS X的二等公民。OS X
l0.6的一大改进就是用基于Cocoa重写的Finder取代了原有的基于Carbon的Finder。OS l0.6搭载的Xcode
3.2也已经不再包含Carbon应用程序、框架等的项目模板,也没有多少新特性暴露给Carbon访问。这有效地把Cocoa变成了OS
X唯一的“原生”应用程序框架。现在只在移植基于Mac OS
9或之前版本的程序时,才推荐使用Carbon,不过已经没有多少值得移植而尚未移植的软件了。
……