iOS系统框架

一、整体预览

低层次框架提供iOS的基本服务和技术,高层次框架建立在低层次框架之上用来提供更加复杂的服务和技术,较高级的框架向较低级的结构提供面向对象的抽象。

二、分层详解

1.触摸UI层

2.媒体层

3.核心服务层

4.核心OS层

三、最重要的两个框架(Foundation与UIKit)

Foundation和UIKit框架是应用编程用到的两个主要的框架,能够满足大多数应用程序的开发需求。

1.Foundation框架

Foundation框架为所有应用程序提供基本的系统服务。应用程序以及UIKit和其他框架,都是建立在Foundation框架的基础结构之上。Foundation框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。

类结构:

图中灰色的是iOS不支持的,灰色部分是OS X系统的。

将上图Foundation框架中的类进行逻辑分类如下:

值对象

集合

操作系统服务 包括下面三个:文件系统和URL进程间通讯。这个范畴中的大部分类代表不同的系统端口、套接字、和名字服务器,对实现底层的IPC很有用。NSPipe代表一个BSD管道,即一种进程间的单向通讯通道。线程和子任务。NSThread类使您可以创建多线程的程序,而各种锁(lock)类则为彼此竞争的线程在访问进程资源时提供各种控制机制。通过NSTask,您的程序可以分出      一个子进程来执行其它工作或进行进度监控。

通知

归档和序列化

表达式和条件判断

Objective-C语言服务

2.UIKit框架

UIKit框架提供的类,用于创建基于触摸的用户界面。所有iOS应用程序都是基于UIKit,没有这个框架,就无法交付应用程序。UIKit提供应用程序的基础架构,用于在屏幕上绘图、处理事件,以及创建通用用户界面及其中元素。UIKit还通过管理屏幕上显示的内容,来组织应用程序。

框架类组织架构图:

在图中可以看出,responder 类是图中最大分支的根类,UIResponder为处理响应事件和响应链 定义了界面和默认行为。当用户用手指滚动列表或者在虚拟键盘上输入时,UIKit就生成时间传送给UIResponder响应链,直到链中有对象处理这个 事件。相应的核心对象,比如:UIApplication  ,UIWindow,UIView都直接或间接的从UIResponder继承。

四、关键框架详解

1.Quartz Core

QuartzCore 框架(QuartzCore.framework)包含Core Animation接口。Core Animation是一个先进的复合技术,使用它能容易创建快和有效的view-based的动画。复合引擎利用底层硬件来有效的实时操作视图内容。只需规定动画的起始点,CoreAnimation做剩下的工作。因为Core Animation内嵌在UIView架构的底层,因此它总是可用的。

2.Core Graphics

CoreGraphics.framework包含Quartz 2D绘制api。Quartz是一个原先用在OS X的先进的、向量绘制引擎。Quartz支持路径绘制,抗锯齿呈现,剃度,图像,颜色,坐标空间转换以及pdf 内容创建、显示和分析等功能。虽然这个api是C-based接口,但它使用了面向对象抽象来表现基本的绘制对象,因此使它容易存储和重用图形内容。

3.AVFoundation

AVFoundation提供先进的视频播放和记录能力。在需要对视频呈现和记录有更多的控制时使用该框架,例如在实时应用中分层显示实时视频和应用提供的其它内容。

4.CoreVideo

CoreVideo 框架 (CoreVideo.framework)为Core Media框架提供缓冲和缓冲池支持。多数应用从不直接使用该框架。

5.CoreText

CoreText 框架 (CoreText.framework)提供一个对文本进行布局和字体处理的简单的、高性能的C-based接口。该框架用在不使用TextKit但仍想获得在字处理应用中发现的先进文本处理能力。该框架提供了一个智能的文本布局引擎,包括在其它内容周围环绕文本的能力,它也支持使用多种字体和呈现属性的先进的文本风格。

6.CoreAudio

Core Audio是一组简单和智能的接口来记录和播放声音以及MIDI内容。在需要对声音有更好控制时使用该框架。

7.OpenGLES

OpenGLES 框架 (OpenGLES.framework)提供绘制2d和3d内容的工具, 它是一个C-based的框架。该框架以最接近设备硬件的方式为全屏沉浸式应用例如游戏提供细粒度的图形控制和高的帧率。你能够与EAGL配合使用这个框架,为OpenGL ES 绘制调用和UIKit的本地窗口对象之间提供接口。该框架支持OpenGLES 1.1, 2.0, 3.0规范。2.0规范增加了片段和顶点着色的支持,3.0规范增加了更多的功能,包括多个呈现目标和变换反馈。

8.Foundation

Foundation框架 (Foundation.framework)提供Core Foundation框架提供的许多功能的Objective-C封装。该框架提供如下功能的支持:

集合数据类型(数组、集合等等)

应用打包Bundles

字符串管理

日期和时间管理

原始数据块管理

Preferences管理

URL和流操作

线程和运行环

Bonjour

通讯端口管理

国际化

规则表达式匹配

Cache支持

9.CoreData

CoreData 框架 (CoreData.framework)框架是管理MVC应用中的数据模式的一种技术。CoreData框架打算在数据模式是高结构化的应用中使用。代替编程定义数据结构,在xcode中能够使用图形工具来建立一个表现你的数据模式的纲要。在运行时,你的数据模式实体的实例通过CoreData框架被创建、管理和获得。通过为你的应用管理其数据模式,CoreData大大减少了必须书写的代码量。CoreData也提供如下功能:

为优化性能在SQLite数据库中存储对象数据

一个管理数据表视图结果的NSFetchedResultsController类

对基本的文本编辑之外的undo/redo的管理

支持属性值的校验

支持传播改变确保对象之间的关系保持一致性

支持分组、过滤和在内存中优化数据。

如果你开始开发一个新应用或计划对已有应用进行大的更新,应该考虑使用CoreData。

10.CoreFoundation

CoreFoundation 框架 (CoreFoundation.framework)是一组C-based接口,为iOS应用提供基本的数据管理和服务功能。该框架包括如下支持:

集合数据类型(数组、集合等等);

应用打包Bundles

字符串管理

日期和时间管理

原始数据块管理

Preferences管理

URL和流操作

线程

11.SystemConfiguration

SystemConfiguration 框架(SystemConfiguration.framework)提供可达性接口,你能用它来确定设备的网络配置,也能使用该框架确定一个Wi-Fi或蜂窝连接是否在用以及一个特定的主机服务器是否能够存取

12.CoreMedia

CoreMedia框架为操作媒体定义低级别的数据类型和接口。当你需要对视频内容有无比的控制时可以使用该框架

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 6转载-->>IOS框架和服务 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,...
    李小六_阅读 3,597评论 2 24
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    wo不懂阅读 1,407评论 3 3
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    ch123阅读 1,755评论 0 1
  • 转自:iOS框架和服务 框架简介 一、什么是系统框架 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库...
    淇滨杜隆坦阅读 1,357评论 0 8
  • 一股思绪浮现、涌现 但又隐没了 它总是匆匆一瞥 忽隐忽现 有时来自于你 有时来自于我 它要求用语言将它释放 通过语...
    一直特立独行的饼阅读 175评论 0 0