什么是cocoa和cocoa Touchios?
一、什么是cocoa和cocoa Touchios

1、Cocoa
Cocoa是一种为Mac OS X应用程序提供丰富用户体验的框架,实际上是由3个框架组成:已知数值的Foundation框架,便于使用数据库存储和管理数据的Core Data框架,以及Application Kit(AppKit)框架。AppKit框架提供了与窗口、按钮、列表等相关的类。使用示意图来说明最顶层应用程序与底层硬件之间的各个层次。
程序与底层硬件的层次
(1)内核以设备驱动程序的形式提供与硬件的底层通信。它负责管理系统资源,包括调度需要执行的程序、管理内存和电源,以及执行基本的I/O操作。
(2)核心服务提供的支持比它上面的层次更加”核心“。例如,提供对集合、网络、调试、文件管理、文件夹、内存管理、线程、时间合电源的管理。
(3)应用服务层包含打印和图形渲染的支持,包括Quartz、OpenGL和Quicktime。
(4)Cocoa层位于应用程序之下。如图所示,Cocoa包括Foundation、Core Data和AppKit框架。Foundation框架提供处理集合、字符串、内存管理、文件系统、存档等相关的类。AppKit框架提供管理视图、窗口、文档和使Mac OS X闻名于世的多用户界面相关的类。
根据上面的描述,有些层的功能似乎有重复。Cocoa层和核心服务层中都存在集合。然而。后者是前者的基础。此外,某些情形也可以绕过或者”桥接“到某一层。例如Foundatio中有些类,比如处理文件系统的那些类直接依赖核心服务层的功能,实际上绕过了应用程序服务层。
2、Cocoa Touch
Cocoa框架应用与Mac OS X桌面与笔记本电脑应用程序的开发,而Cocoa Touch框架应用与iOS设备上应用程序的开发。Cocoa和Cocoa Touch都有Foundation和Core Data框架,然而在Cocoa Touch下,UIKit代替了AppKit框架,提供了很多相同的类型的对象支持、比如窗口、视图、按钮、文本域等。另外,Cocoa Touch还提供使用陀螺仪和加速器(它与GPS和 WIFI 信号一样都能跟踪你的位置)的类和触摸式界面,去掉了不需要的类。
Cocoa Touch 框架推动了iOS应用开发,为开发者提供了很多 Mac 平台上久经考验的模式,同时又特别专注于基于触摸的开发接口和性能优化。
大部分Cocoa Touch的功能是用Objective-C实现的,其中,UIKit 提供了开发 iOS 上的图形化事件驱动程序所需的基本工具。UIKit 基于 Foundation 框架,该框架同样存在于 Mac OS X 系统中,提供了文件处理、网络、字符串处理以及其他基础架构。除了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’ 提供面向对象的数据管理解决方案,
该方案易于使用和理解,甚至可处理任何应用或大或小的数据模型。’
Cocoa Touch框架还提供两种内存管理方式,一种自动内存计数ARC(Automatic Reference Counting ),另一种手动引用技术(manual reference counting)。对于后一种需要程序员自己retain和release,其原则是“责任落实”,谁创建了对象(或保留了以创建的对象),谁就是该对象的拥有方,不再使用时,则要负责释放该所有权。
延伸阅读:
二、 cocoa与cocoa Touch区别之分
两者都包含OC运行时的两个核心框架;
cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序
cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序;
Cocoa是Mac OS X的开发环境,cocoa Touch是Iphone OS的开发环境。
猜你喜欢LIKE
相关推荐HOT
更多>>
数据库ER图是怎么做的?
一、数据库ER图的制作步骤1、确定实体首先,确定数据库中的实体,即表示现实世界中独立存在的对象或概念。例如,如果我们正在设计一个学生管理...详情>>
2023-10-17 22:22:23
数据库事务原子性、一致性是怎样实现的?
一、数据库事务原子性、一致性的实现方式数据库事务的原子性(Atomicity)和一致性(Consistency)是通过事务的 ACID 特性来实现的。原子性(At...详情>>
2023-10-17 20:24:58
PolarDB-X与PolarDB的关键区别是什么?
一、PolarDB-X与PolarDB的关键区别PolarDB实际是共享存储型的数据库,适合于公有云场景降低中小型租户成本的数据库,类似于AWS的AURORA,类似于...详情>>
2023-10-17 17:43:25
SQL语句为什么使用select * 会降低查询速度?
一、为什么使用select * 会降低查询速度在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。说明:增加查询分析器解析...详情>>
2023-10-17 15:31:17热门推荐
设计数据库时,数据库名和表名是否需要前缀,优缺点是什么?
沸什么是分库分表?
热数据库ER图是怎么做的?
热时序数据库是什么?
新用什么工具做局域网报表填报系统?
数据库事务原子性、一致性是怎样实现的?
作为一个K-V数据库,levelDB索引为什么要使用LSM树实现,而不采用哈希索引?
既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读?
为什么要用模块化、组件化才能完成 Android 项目中类加载功能?
PolarDB-X与PolarDB的关键区别是什么?
怎样在MySQL表中存储树形结构数据?
redis似乎并没有“事务”,那些用到“事务”的人在做什么?
开发一款商城系统APP有什么优势?
SQL语句为什么使用select * 会降低查询速度?
技术干货
京公网安备 11010802030320号