cocoa和基础框架的区别

Cocoa是苹果公司为Mac OS X打造的原生面向对象编程环境,是Mac OS X上的五大API之一(另外四个是Carbon、POSIX、X11和Java)。

Cocoa应用一般是在苹果的开发工具Xcode(原名Project Builder)和Interface Builder上用Objective-C编写的。但也可以通过Java bridge、PasCocoa、PyObjC、CamelBones、Ruby等桥接技术,使用其他工具或语言如Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等开发Cocoa应用。还有一些其他语言的Cocoa实现不需要桥接,比如苹果开发的MacRuby和类似Lisp的Nu语言。不使用Xcode和Interface Builder,仅通过文本编辑器、GCC和GNU make工具就可以用Objective-C语言开发Cocoa应用程序。

对于最终用户来说,使用Cocoa编程环境开发的应用程序就是Cocoa应用程序。这类应用具有独特的外观,因为Cocoa编程环境允许程序在许多方面自动遵循苹果的人机界面代码。

Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即运行时可以动态加载应用的地址空间,但框架是一个bundle(计算机)而不是一个独立的文件,除了可执行代码之外,还包括资源、头文件和文档。

“基础工具包”,或者简称为“基础”,最早出现在OpenStep中。在Mac OS X,它是基于核心基础。作为一个通用的面向对象函数库,Foundation提供了对字符串和值、容器及其枚举、分布式计算、事件循环以及其他与图形用户界面没有直接关系的功能的管理。用于类和常量的前缀“NS”来自Cocoa,NeXTSTEP。它可以在Mac OS X和iOS中使用。“应用工具包”,或AppKit(应用工具包),直接来源于NeXTSTEP的AppKit。它包含程序与图形用户界面交互所需的代码。它基于Foundation,也使用前缀“NS”。它只能在MAC OS X中使用。“用户界面工具包”,或UIKit(用户界面工具包),是一个用于iOS的图形用户界面工具包。与AppKit不同,它使用前缀“UI”。

Cocoa架构的一个关键部分是其多样化的视图模型。总的来说,它是基于Quartz提供的PDF绘图模型,允许你用PostScript绘制自定义的图形内容,还自动支持打印机和类似设备。因为Cocoa框架管理所有的绘制操作,比如裁剪、滚动、缩放等。,程序员可以不重复基本功能,而可以专注于提供程序的关键功能。