OC与cocoa ,cocoa touch

来源:互联网 发布:集搜客网络爬虫 下载 编辑:程序博客网 时间:2024/05/21 06:37
简单来说就是:苹果为Mac OS X平台程序开发提供了cocoa API :包含Foundation 和 AppKit库为IOS移动平台开发提供了cocoa touch API: 包含Foundation 和 UIKit库而以上所有的库都是用Objective C所编写的。

mac OS X程序 ,即cocoa API库:
cocoa
IOS程序,即cocoa touch API 库
cocoa touch
注:以下内容出自百度百科。

[OC]

    1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。Objective-C用途:编写iOS操作系统(如:iPhone、iPod touch、iPad 等苹果移动终端设备 )应用程序和Mac OS X操作系统应用程序的利器。 Objective-C的流行当归功于iPhone的成功,因为Objective-C被用于编写iPhone应用程序。

[cocoa]
Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。

开发过程:
施乐帕罗奥多研究中心的Smalltalk开发小组最终发明了一种可以简化开发过程,提高代码重用率的设计哲学,即“模型-视图-控制器”模式(MVC)。这种模式将应用程序分为三个可以交互的对象集,即模型,视图和控制器。其中,模型类代表原始数据,例如文档、设置、文件、内存中的对象等,视图是模型中数据的可视化表现,而控制器类则包含了将模型和其对应视图连接起来的逻辑,并保持前二者的状态同步。
Cocoa的设计遵循了严格的MVC原则。在OpenStep下,绝大多数的类要么是高层的视图类(AppKit),或者是相对底层的模型类(Foundation)。与类似的MVC系统相比,OpenStep没有强的模型层,例如它不包含表示“文档”的存储类。在向Cocoa迁移的过程中,模型层被大大扩展了,引入了一系列的类,它们提供了一些桌面程序所需的常用功能。
在Mac OS X 10.3中,苹果引入了NSController系列类以提供预定义的控制器层。这些类是Cocoa绑定系统的一部分,该系统也允许使用类似键-值-观测器和键-值-绑定协议来对其进行扩展。其中,“绑定”的概念表明两个对象(通常是视图和控制器)之间的关系。绑定使得开发者可以集中于定义这种关系,而不是编写大量的“胶水代码”来实现这些关系。
在Mac OS X 10.4中,苹果引入了Core Data框架,进一步扩展了这种概念。Core Data标准化了对更改的追踪和模型层的保存行为。因此,该框架大大简化了改变应用程序数据,撤销更改,在磁盘中保存和读取数据的过程。
通过提供对MVC模型中全部3层的框架支持,苹果的目的在于减少程序员所需编写的“胶水代码”量,以解放这些资源而用于程序的真正特性。

主要框架

Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。“Foundation工具包”,或简称为“Foundation”,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,**Foundation**提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。“应用程序工具包”,或称**AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的**。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。Cocoa构架的一个关键部分是其多样的视图模型。总体而言,它是基于由Quartz提供的PDF绘制模型的,该特性允许使用PostScript绘制自定义图形内容,同时也自动的支持了打印机以及类似设备。由于Cocoa框架管理了全部的绘图操作,例如裁剪,滚动,缩放等,程序员可以不再重复实现基础的功能,而可以集中于提供程序的关键功能上。

实现
Cocoa 本身由 Objective-C 语言写成,因此 Objective-C 是开发 Cocoa 应用的首选语言。虽然也提供 Java 到 Cocoa 的绑定,但是在开发者中并未得到广泛采用。而且,由于使用桥接机制,Java 的绑定并不能全面利用 Cocoa 的所有功能。2005年,苹果公司宣布 Java 的 Cocoa 绑定在 Mac OS X 10.4 和之后版本中属被废弃的技术。换句话说,Cocoa API 中可能会逐渐出现不支援 Java 的功能。


[cocoa touch]
Cocoa Touch由苹果公司提供的软件开发api, 用于开发 iPhone\iPod\iPad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。

Cocoa Touch框架

除 UIKit 之外,Cocoa Touch 包含创建世界一流 iOS 应用程序所需的所有框架,从 3D 图形、专业音频到网络,甚至提供特殊设备访问 API 以控制摄像机或从 GPS 硬件获取位置。Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统。这些框架示例包括:
Core Animation
通过 Core Animation,您就可以通过基于组合独立图层的简单编程模型来创建丰富的用户体验。
Core Audio
Core Audio 是播放、处理和录制音频的专业级技术,能够轻松为您的应用程序添加强大的音频功能。
Core Data
Core Data 提供面向对象的数据管理解决方案,该方案易于使用和理解,甚至可处理任何应用或大或小的数据模型。

iphone 技术层
Cocoa Touch 层由多个框架组成,他们为应用程序提供了核心功能。
UIKit 负责启动和结束应用程序,控制界面和多触点事件
Map Kit 提供地图的相关服务
Game Kit 创建和使用网络机制
Message UI/Adress Book UI 提供操作电子邮件和联系人的信息

0 0
原创粉丝点击