一、整体预览
二、分层详解
1.触摸UI层
2.媒体层
3.核心服务层
4.核心OS层
三、最重要的两个框架(Foundation与UIKit)
Foundation和UIKit框架是应用编程用到的两个主要的框架,能够满足大多数应用程序的开发需求。
1.Foundation框架
Foundation框架为所有应用程序提供基本的系统服务。应用程序以及UIKit和其他框架,都是建立在Foundation框架的基础结构之上。Foundation框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。
类结构:
将上图Foundation框架中的类进行逻辑分类如下:
值对象
集合
操作系统服务 包括下面三个:文件系统和URL进程间通讯。这个范畴中的大部分类代表不同的系统端口、套接字、和名字服务器,对实现底层的IPC很有用。NSPipe代表一个BSD管道,即一种进程间的单向通讯通道。线程和子任务。NSThread类使您可以创建多线程的程序,而各种锁(lock)类则为彼此竞争的线程在访问进程资源时提供各种控制机制。通过NSTask,您的程序可以分出 一个子进程来执行其它工作或进行进度监控。
通知
归档和序列化
表达式和条件判断
Objective-C语言服务
2.UIKit框架
UIKit框架提供的类,用于创建基于触摸的用户界面。所有iOS应用程序都是基于UIKit,没有这个框架,就无法交付应用程序。UIKit提供应用程序的基础架构,用于在屏幕上绘图、处理事件,以及创建通用用户界面及其中元素。UIKit还通过管理屏幕上显示的内容,来组织应用程序。
框架类组织架构图:
四、关键框架详解
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框架为操作媒体定义低级别的数据类型和接口。当你需要对视频内容有无比的控制时可以使用该框架