iOS中所谓的框架,说到底就是一个目录,iOS提供了很多我们可以在应用程序中调用的框架。许多应用程序都使用了如Foundation、UIKit和Core Graphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动引入了。比如我们在OSX Application下的CommandLineTool创建一个Xcode工程时,系统会帮我们默认引入Foundation 框架: #import <Foundation/Foundation.h>如果默认加入的框架不能满足你的应用程序的需求,你也可以加入自己需要的框架。要使用一个框架,需要将它添加到你创建的项目中,你的项目才可以使用它。
在我们开发iOS项目时,最主要使用的框架就是Foundation和UIKit框架,Fundation框架为所有的应用程序提供了基础系统服务,UIKit框架提供了基于用户界面的类.
iOS常用基础框架
框架名称 |
功能 |
Foundation |
提供OC的基础类(像NSObject,NSString等)、基本数据类型等 |
UIKit |
创建和管理应用程序的用户界面 |
QuartzCore |
提供动画特效以及通过硬件进行渲染的能力 |
CoreGraphics |
提供2D绘制的基于C的API |
SystemConfiguration |
检测当前网络是否可用和硬件设备状态 |
AVFoundation |
提供音频录制和回放的底层API,同时也负责管理音频硬件 |
CFNetwork |
访问和配置网络,像HTTP、FTP和Bonjour Services |
CoreFoundation |
提供抽象的常用数据类型,如Unicode strings、XML、URL等 |
CoreLocation |
使用GPS和WIFI获取位置信息 |
GameKit |
为游戏提供网络功能:点对点互联和游戏中的语音交流 |
AddressBook |
提供访问用户联系人信息的功能 |
AddressBookUI |
提供一个用户界面,用于显示存储在地址簿中的联系人信息 |
AudioToolBox |
提供音频录制和回放的底层API,同时也负责管理音频硬件 |
AudioUnit |
提供一个接口,让我们的应用程序可以对音频进行处理 |
MapKit |
为应用程序提供内嵌地图的接口 |
MediaPlayer |
提供播放视频和音频的功能 |
MessageUI |
提供视图控制接口用以处理E-mail和短信 |
OpenGLES |
提供动画特效以及通过硬件进行渲染的能力 |
StoreKit |
为应用程序提供在程序运行中消费的支持 |
以及常用的第三方开源框架AFNetworking等.
Foundation框架
(截图左侧是部分苹果官方文档里的框架, 截图右侧显示了部分Foundation框架下类的头文件)
所谓的Foundation.framework框架,就是苹果把一些我们常用的类封装到这个框架里面,常见的类主要有NSString,NSDate,NSArray,NSDictionary,NSSet,NSNumber等,OC中的类可分为不可变(immutable)类和可变(mutable)类,不可变类的实例对象称为不可变对象,指的是创建后不可更改其内容的对象.可变类的实例对象称为可变对象,指的是创建后能够改变其内容或状态的对象.使用Foundation我们可以:
- 创建和管理集合,比如数组和字典
- 访问存储在应用程序里的图片和其它资源
- 创建和管理字符串
- 提交和接收通知
- 创建日期和时间对象
- 自动发现IP网络上的设备
- 操作URL流
- 执行异步代码
那么,要学习好系统提供好的类我们可以:
1. 学会使用苹果官方提供的API(Application Programming Interface,应用程序编程接口)文档
2. 直接查看类的头文件
Option + 鼠标左键 进入类的 API 文档(初学者)
Command + 左键进入类的头文件 通过查看头文件的方式,适合对这个类有一定了解的同学.
3. 查看API文档的时候主要注意哪些关键字
Inherits from 继承自哪个类
Conforms to 表示这个类遵循哪些协议
Framework 这个类定义在那个框架下的
Availability 这个类从iOS的哪个版本后开始支持这个类
Declared in 声明