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很相似,又早起的一批人开发的,内部有很多现 ...
随机推荐
- Communication System
poj1018:http://poj.org/problem?id=1018 题意:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1.m2.m3.....mn个厂家提供生产, ...
- linux下so动态库一些不为人知的秘密(转)
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名.二者都使用广泛.本文主要讲动态库方面知识.基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库, ...
- JVM中内存回收深入分析,各种垃圾收集器
JVM启动有两种模式,client和server 一般JVM启动时会根据主机情况分析选择采用那种模式启动 可发现是server模式 JVM中尤其需要关注的就是HEAP堆区 堆区分为新生代和老年代 新生 ...
- DFS hdu 1016
http://acm.hdu.edu.cn/showproblem.php?pid=1016 #include <iostream> using namespace std; int a[ ...
- php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日.上周.本月的起始 ...
- G - Supermarket poj1456
题目的描述很长,其实描述的问题很简单,说有n的商品,它们每个的价值是pi,但是呢,再过di天这些商品就不能卖了(有可能过期了...),现在给出来每个商品的价值和可以卖的最后期限,问可以得到最多多少资金 ...
- HTML embed标签使用方法和属性详解
一.基本语法 代码如下: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等,Netscape及新版的IE 都支持 ...
- 移动端转PC --> PC跳转移动端
<script type=”text/javascript”>try {var urlhash = window.location.hash;if (!urlhash.match(“fro ...
- 【下载分】C语言for循环语句PK自我活动
想了解自己C语言for语句的掌握程度吗?敢和自己PK较量一番吗?參加"C语言for循环语句PK自我活动",仅仅要成绩70分以上.就可赢得CSDN下载分. 12道题目题库动态读取,每 ...
- 第一个 Python 程序 - Email Manager Demo
看了一些基础的 Python 新手教程后,深深感觉到 Python 的简洁与强大,这是我的第一个 Python Demo.下面是完整代码与执行截图. 代码: # encoding: utf-8 ''' ...