Cocoa是OS X和 iOS操做系统的程序的运行环境。编程
是什么因素使一个程序成为Cocoa程序呢?不是编程语言,由于在Cocoa开发中你可使用各类语言;也不是开发工具,你能够在命令行上就能够建立Cocoa程序。Cocoa程序能够这么说,它是由一些对象组成,而这些对象的类最后都是继承于它们的根类 :NSObject。并且它们都是基于Objective-C运行环境的。服务器
iOS中,Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。多线程
Foundation 和界面无关,也能够说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。架构
这两个框架在系统中处于的位置如图:框架
好吧,那咱们看看两个框架的类组织架构图,第一个先看Foundation的,三个图,包括了Foundation全部的类,图中灰色的是iOS不支持的,灰色部分是OS X系统的。编程语言
将上图Foundation框架中的类进行逻辑分类以下:工具
值对象开发工具
集合 ui
操做系统服务 包括下面三个:文件系统和URL 进程间通信。 这个范畴中的大部分类表明不一样的系统端口、套接字、和名字服务器,对实现底层的IPC颇有用。NSPipe表明一个BSD管道,即一种进程间的单向通信通道。 线程和子任务。 NSThread类使您能够建立多线程的程序,而各类锁(lock)类则为彼此竞争的线程在访问进程资源时提供各类控制机制。经过NSTask,您的程序能够分出 一个子进程来执行其它工做或进行进度监控。操作系统
通知
归档和序列化
表达式和条件判断
Objective-C语言服务
应用程序能够经过三种方式使用UIKit建立界面
在用户界面工具(interface Buidler)从对象库里 拖拽窗口,视图或者其余的对象使用。
用代码建立
经过继承UIView类或间接继承UIView类实现自定义用户界面
框架类组织架构图:
在图中能够看出,responder 类是图中最大分支的根类,UIResponder为处理响应事件和响应链 定义了界面和默认行为。当用户用手指滚动列表或者在虚拟键盘上输入时,UIKit就生成时间传送给UIResponder响应链,直到链中有对象处理这个事件。相应的核心对象,好比:UIApplication ,UIWindow,UIView都直接或间接的从UIResponder继承。