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很相似,又早起的一批人开发的,内部有很多现 ...
随机推荐
- 转:USB主机控制器(Host Controller)--深入理解
1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1) • ...
- cf C. Fox and Box Accumulation
题意:输入一个n,然后输入n个数,问你可以划分多少个序列,序列为:其中一个数为c,在它的前面最多可以有c个数. 思路:先排序,然后对于每一个数逐步的找没有被用过的数,且这个数可以符合条件,然后如果没有 ...
- Qt入门(7)——窗口几何结构
QWidget提供了几个处理窗口几何结构的函数.这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架.它们之间的区别在某种意义上被完成覆盖明显地最普通的方法.包括窗口的框架 ...
- 字符串(马拉车算法,后缀数组,稀疏表):BZOJ 3676 [Apio2014]回文串
Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. Input 输入只有一行 ...
- 编写一个单独的Web Service for Delphi7(步骤)
1新建一个SOAP Server Application,在提示输入接口时输入MyHello,把所有文件保存在一个叫Ser的目录下,其中一个包含TWebModule1的文件保存为main.pas.在M ...
- SendMessage API
using System; using System.IO; using System.Threading; using System.Diagnostics; using System.Runtim ...
- 数学概念——A 几何概型
You are going from Dhaka to Chittagong by train and you came to know one of your old friends is goin ...
- UVa 11796 计算几何
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- python环境配置selenium与IE、Chrome、Firefox、PhantomJS
安装.升级selenium pip install -U selenium 下载对应平台最新版的browser driver chrome: http://chromedriver.storage.g ...
- iOS开发之监测网络状态
一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户 ...