1.ios系统架构
ios是基于UNIX内核,其系统架构分为4层。
从下到上依次为:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。
(1).Core OS层-----包含核心部分、文件系统、网络基础、安全特性、能量管理和一些设备驱动,是核心操作系统层。
(2).Core Services层----提供核心服务,例如字符串处理函数、集合管理、网络管理、URL处理工具、联系人维护、偏好设置等。
(3).Media层----该层框架和服务依赖Core Services层,向Cocoa Touch层提供画图和多媒体服务,如声音、图片、视频等。
(4).Cocoa Touch层----该框架基于 iPhone OS应用层直接调用层,如触摸事件、照相机管理等,包该层含UIKit框架和Foundation框架。
2.Cocoa框架
Cocoa是OS X和 iOS操作系统的程序的运行环境。最重要最基本的两个框架是:Foundation 和 UIKit。Foundation 和界面无关,也可以说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。
Foundation框架中类,分类如下:。
(1)值对象
(2)集合
(3)操作系统服务 包括下面三个:文件系统和URL 进程间通讯。 这个范畴中的大部分类代表不同的系统端口、套接字、和名字服务器,对实现底层的IPC很有用。NSPipe代表一个BSD管道,即一种进程间的单向通讯通道。 线程和子任务。 NSThread类使您可以创建多线程的程序,而各种锁(lock)类则为彼此竞争的线程在访问进程资源时提供各种控制机制。通过NSTask,您的程序可以分出 一个子进程来执行其它工作或进行进度监控。
(4)通知
(5)归档和序列化
(6)表达式和条件判断
(7)Objective-C语言服务
UIKit框架类组织架构图:
在图中可以看出,responder 类是图中最大分支的根类,UIResponder为处理响应事件和响应链 定义了界面和默认行为。当用户用手指滚动列表或者在虚拟键盘上输入时,UIKit就生成时间传送给UIResponder响应链,直到链中有对象处理这个事件。相应的核心对象,比如:UIApplication ,UIWindow,UIView都直接或间接的从UIResponder继承。也观察到UIButton、UISwitch等都是继承UIControl,所以都有UIControl的共性。
心得:其实学习ios编程,语言只是处理调用框架类的工具,要对整体的架构有认知,包括类之间的继承关系、及对api的调用方法。以后的学习方向就依靠与此。
note:文章中图片和部分知识来源于网络,如有问题及时通知。