Objective-C学习篇05—Foundation框架简介
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 声明
Objective-C学习篇05—Foundation框架简介的更多相关文章
- (转载)OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java ...
- (转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类, ...
- (转载)OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
在之前的一篇文章中介绍了Foundation框架中的NSString类和NSMutableString类,今天我们继续来看一下Foundation框架中的NSArray类和NSMutableArray ...
- (转载)OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
在之前的一篇文章中我们说到了Foundation框架中的NSObject对象,那么今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString. 在OC中 ...
- (转载)OC学习篇之---Foundation框架中的NSObject对象
前一篇文章讲到了OC中的代理模式,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架. OC中的Foundation框架是系统提供了,他就相当于是系统的一套a ...
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于J ...
- OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
我们继续来看一下Foundation框架中的NSArray类和NSMutableArray类,其实NSArray类和Java中的List差不多,算是一种数据结构,当然我们从这两个类可以看到,NSArr ...
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutabl ...
- OC学习篇之---Foundation框架中的NSObject对象
从这篇文章开始我们开始介绍Foundation框架. OC中的Foundation框架是系统提供了,他就相当于是系统的一套api,和Java中的一些系统jar很相似,又早起的一批人开发的,内部有很多现 ...
随机推荐
- 【Java】ArrayList和LinkedList的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问 ...
- Play on Words
poj1386:http://poj.org/problem?id=1386 题意:给你n个单词,问你是否能够通过调整单词的顺序存在这样的一个序列,使得 每个单词的首字母是前一个单词的尾字母. 题解: ...
- YII 主题
heming是一个在Web应用程序里定制网页外观的系统方式.通过采用一个新的主题,网页应用程序的整体外观可以立即和戏剧性的改变. 在Yii,每个主题由一个目录代表,包含view文件,layout文件和 ...
- 【HDOJ】3329 The Flood
超简单BFS. /* 3329 */ #include <iostream> #include <queue> #include <cstdio> #include ...
- 【JS】壹零零壹
function f1() { } var f2 = function() { } var O = {} O.f1 = f1 O.f2 = f2 console.log(O)
- IOI 2009:Mecho
IOI2009 Mecho Time Limit: 10000ms Memory Limit: 262144KB This problem will be judged on SPOJ. Origin ...
- win7使用USB转串口连接mini2440方法
不想嚼别人吃剩的馍.我只说我自己是怎么痛苦的连上的. 环境设备: window7笔记本,没有串口,装有XP和Ubuntu2个虚拟机(不是必须的,我只是说明一下我的环境) 友善之臂mini2440(含U ...
- 【转】C/C++ 内存对齐
[转自]http://wenku.baidu.com/view/8eaaa26925c52cc58bd6bed2.htmlC/C++内存对齐 一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都 ...
- hdoj 1711 Number Sequence【求字串在母串中第一次出现的位置】
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- setClickable(false)问题处理
在项目中遇到一个小问题 就是 设置btn的 点击不可以 setClickable(false) 结果发现还是有问题 查了半小时代码之后 才发现 是顺序问题 如果先设置点击监听setOnClickLi ...