UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架
框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。
IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和Core Graphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动引入了。如果默认加入的框架不能满足你的应用程序的需求,你也可以加入需要的框架。
看看HelloWorld.xcodeproj项目里都包含了哪些框架(注:HelloWorld.xcodeproj是《Your First iOS App tutorial 》这篇教程里的一个项目)
1.在XCode里打开HelloWorld.xcodeproj项目(如果还没有打开)
2. 在project navigator窗口里点击,点击Frameworks目录前面的三角形图标。你会看到:
UIKit.framework,Foundation.framework, 和CoreGraphics.framework
3. 点击任意一个framework前面的三角,然后再点击Headers前面的三角,可以看到框架里的头文件。
每个框架对应IOS系统里的一层,每层建立在它下面层的上面。应该尽量使用上层的框架来代替下面的框架。更高层次的框架是对底层框架基于对象的抽象。

iOS应用程序基于Foundation和UIKit框架
在你开发程序时,主要使用框架就是Foundation和UIKit,因为它们包含了你需要的大部分东西。
Foundation框架为所有的应用程序提供基本系统服务
你的应用程序,UIKit和其它的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。
使用Foundation可以:
- 创建和管理集合,比如数组和字典
- 访问存储在应用程序里的图片和其它资源
- 创建和管理字符串
- 提交和接收通知
- 创建日期和时间对象
- 自动发现IP网络上的设备
- 操作URL流
- 执行异步代码
你已经在《Your First iOS App》里使用到了Foundation框架。比如,你使用一个NSString类的实例存储用户输入的userName。你还使用了Foundation框架的initWithFormat方法创建了一个字符串。
UIKit框架提供创建基于触摸用户界面的类
所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。
使用UIKit可以:
- 构建和管理你的用户界面
- 捕获触摸和基于移动的事件
- 呈现文字和web内容
- 优化你的多任务程序
- 创建定制的用户界面元素
在《YouFirst iOS App Tutorial》里,你也使用到了UIKit。当你仔细查看程序是怎么运行起来的时候,你会看到UIApplicationMain函数创建一个UIApplication类的实例,这个实例会捕获进来的用户事件。你实现UITextFieldDelegate协议,然后在用户按下Done时隐藏键盘。实际上,你是在使用UIKit创建用户界面上的UITextField, UILabel,和UIButton类。
你需要知道的其它重要的框架
Core Data框架管着理应用程序数据模型
Core Data提供对象的管理,使用Core Data,你可以创建模型对象,并管理这些对象。你管理这这些对象间的联系并修改数据。Core Data提供的内建SQLlite技术可以高效的管理数据。
使用Core Data可以:
- 在库里存储和接收对象
- 提供基本的undo/redo
- 自动验证属性值
- 过滤、分组和优化内存中的数据
- 用[NSFetchedResultsController]管理表视图中的结果
- 支持基于文档的应用程序
Core Graphics框架帮助你创建图形
高质量的图形对于所有的iOS应用程序都是很重要的。在iOS中最简单且最快捷的创建图形的方式是使用UIKit框架提供的基于预渲染图形的视图和控件,然后让UIKit和iOS完成绘制。但是当你需要创建复杂的图形时,Core Graphics则提供了更底层的库来帮助你。
使用Core Graphics可以:
- 创建基于路径的绘图
- 抗锯齿渲染
- 添加梯度、图片和颜色
- Use coordinate-space transformations.
- 创建、显示和分析PDF文档
Core Animation允许你创建高级的动画和虚拟效果
UIKit提供建立在Core Animation之上的动画。如果你需要比UIKit能力更高级的功能,可以直接使用Core Animation。Core Animation接口包含在Quartz Core框架里。使用Core Animation可以创建嵌套的对象,并且可以对它们操作、旋转、缩放和转换。使用Core animation,你可以创建动态的用户界面而不用使用更底层的图形API,如OpenGL ES。
使用Core Animation可以:
- 创建定制动画
- 添加定时函数和图形
- 支持帧动画
- Specify graphical layout constraints.
- Group multiple-layer changes into anatomic update.
OpenGL ES 框架提供2D和3D绘图工具
OpenGL ES支持2D和3D绘图,Apple的OpenGL ES实现通过硬件提供了高速的全屏游戏式的应用程序。
使用OpenGL ES可以:
- 创建2D和3D图形
- 创建更复杂的图形,比如数据虚拟化、模拟飞行,或者视频游戏
- 访问底层图形设备
根据需要向项目中添加其它框架
还有许多框架可以添加到你的程序里。当你决定使用一个框架但项目里却没有引入这个框架时,你就需要将它加入到你的项目里。

将别的框架添加到工程里
1 打开工程
2 点击项目名,显示project editor
3 在TARGETS列表中选中要添加框架的工程
4 点击project editor顶部的Build Phases
5 点击Link Binary With Libraries前面的三角形打开这个分组
6 通过点击添加(+)来添加一个框架
7 在列表中选择一个框架,然后点击Add按钮
|
名称 |
最先引入 |
前缀 |
描述 |
|---|---|---|---|
|
Accelerate.framework |
4.0 |
cblas |
包含加速数学和DSP函数。 请查看 加速框架参考 。 |
|
AddressBook.framework |
2.0 |
AB |
包含直接访问用户联系人数据库的函数。请查看地址簿框架参考。 |
|
AddressBookUI.framework |
2.0 |
AB |
包含显示系统定义的联系人挑选界面和编辑界面的类。请查看iOS地址簿UI框架参考 。 |
|
AssetsLibrary.framework |
4.0 |
AL |
包含显示用户照片和视频的类,请查看资源库框架参考 。 |
|
AudioToolbox.framework |
2.0 |
AU |
包含处理音频流数据以及播放或录制音频的接口。请查看音频工具箱框架参考。 |
|
AudioUnit.framework |
2.0 |
AU |
包含加载并使用音频单元的接口。请查看音频单元框架参考. |
|
AVFoundation.framework |
2.2 |
AV |
包含播放或录制音频的Objective-C接口。请查看AV Foundation框架参考.。 |
|
CFNetwork.framework |
2.0 |
CF |
包含通过WiFi或者蜂窝无线访问网络的接口。请查看CFNetwork框架参考。 |
|
CoreAudio.framework |
2.0 |
Audio |
包含Core Audio框架使用的各种数据类型。请查看Core Audio 框架参考 。 |
|
CoreData.framework |
3.0 |
NS |
包含管理应用程序数据模型的接口。请查看Core Data 框架参考 。 |
|
CoreFoundation.framework |
2.0 |
CF |
提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。请查看rovCore Foundation框架参考。 |
|
CoreGraphics.framework |
2.0 |
CG |
包含Quartz 2D接口。请查看Core Graphics 框架参考 。 |
|
CoreLocation.framework |
2.0 |
CL |
包含确定用户方位信息的接口。请查看Core Location 框架参考。 |
|
CoreMedia.framework |
4.0 |
CM |
包含操作音频和视频的底层例程。请查看Core Media 框架参考。 |
|
CoreMotion.framework |
4.0 |
CM |
包含访问加速度计以及陀螺仪的数据的接口。请查看Core Motion 框架参考。 |
|
CoreTelephony.framework |
4.0 |
CT |
包含访问电话相关的信息的例程。请查看Core Telephony 框架参考。 |
|
CoreText.framework |
3.2 |
CT |
包含一个文本的布局渲染引擎。请查看Core Text参考集.。 |
|
CoreVideo.framework |
4.0 |
CV |
包含操作音频和视频的底层例程。请不要直接使用该框架。 |
|
EventKit.framework |
4.0 |
EK |
包含访问用户日历事件数据的接口。请查看Event Kit 框架参考。 |
|
EventKitUI.framework |
4.0 |
EK |
包含显示标准系统日历界面的类。请查看Event Kit UI 框架参考。 |
|
ExternalAccessory.framework |
3.0 |
EA |
包含与外设进行通讯的接口。请查看External Accessory 框架参考。 |
|
Foundation.framework |
2.0 |
NS |
包含Cocoa Foundation层的类和方法。请查看Foundation 框架参考。 |
|
GameKit.framework |
3.0 |
GK |
包含点对点连接管理接口。请查看Game Kit 框架参考。 |
|
iAd.framework |
4.0 |
AD |
包含在应用程序中显示广告的类。请查看iAd 框架参考。 |
|
ImageIO.framework |
4.0 |
CG |
包含读取或写入图像数据的类。请查看Image I/O 参考集。 |
|
IOKit.framework |
2.0 |
N/A |
包含设备所使用的接口。请不要直接使用此框架。 |
|
MapKit.framework |
3.0 |
MK |
包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。请查看Map Kit框架参考。 |
|
MediaPlayer.framework |
2.0 |
MP |
包含显示全屏视频的接口。请查看Media Player 框架参考。 |
|
MessageUI.framework |
3.0 |
MF |
包含撰写和排队发送电子邮件信息的界面。请查看Message UI 框架参考。 |
|
MobileCoreServices.framework |
3.0 |
UT |
定义系统支持的统一类型标识符(UTIs)。 |
|
OpenAL.framework |
2.0 |
AL |
包含OpenAL接口。OpenAL是一个跨平台的方位音频库。如需进一步了解,请访问http://www.openal.org。 |
|
OpenGLES.framework |
2.0 |
EAGL |
包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。请查看OpenGL ES 框架参考。 |
|
QuartzCore.framework |
2.0 |
CA |
包含Core Animation接口。请查看Quartz Core 框架参考。 |
|
QuickLook.framework |
4.0 |
QL |
包含预览文件接口。请查看Quick Look 框架参考。 |
|
Security.framework |
2.0 |
CSSM |
包含管理证书、公钥私钥以及信任策略的接口。请查看Security框架参考。 |
|
StoreKit.framework |
3.0 |
SK |
包含用于处理与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考。 |
|
SystemConfiguration.framework |
2.0 |
SC |
包含用于处理设备网络配置的接口。请查看System Configuration框架参考。 |
|
UIKit.framework |
2.0 |
UI |
包含iOS应用程序用户界面层使用的类和方法。请查看UIKit 框架参考。 |
UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架的更多相关文章
- 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
项目创建时会有 “Use Core Data" ,但是,有时没有勾选这个选项,那么就要手动链接Core Data Framework. 选中 Grocery Dude Target Gene ...
- ios开发:Core Data概述
Core Data 概述 2005年的四月份,Apple 发布了 OS X 10.4,在这个版本中 Core Data 框架发布了.Core Data本身既不是数据库也不是数据库访问框架.相反,Cor ...
- iOS 数据持久化(3):Core Data
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- Core Data-备用
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...
- iOS数据持久化 -- Core Data-备用
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...
- Core Data & MagicalRecord
iOS 本地数据持久化存储: 1.plist 2.归档 3.NSUserDefaults 4.NSFileManager 5.数据库 一.CoreData概述 CoreData是苹果自带的管理数据库的 ...
- iOS数据持久化 -- Core Data
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...
- 《驾驭Core Data》 第三章 数据建模
本文由海水的味道编译整理,请勿转载,请勿用于商业用途. 当前版本号:0.1.2 第三章数据建模 Core Data栈配置好之后,接下来的工作就是设计对象图,在Core Data框架中,对象图被表 ...
- 《驾驭Core Data》 第一章 Core Data概述
<驾驭Core Data>系列教程综合了<Core Data for iOS>,<Learning Core Data for iOS>,<Core Data ...
随机推荐
- 无需图片,使用CSS3实现圆角按钮[转]
首先来看看效果: 事例HTML代码: <a href="#" class="button green">button</a> < ...
- 基于jQuery带备忘录功能的日期选择器
今天给大家分享一款基于jQuery带备忘录功能的日期选择器.这款日期控制带有备记忘录功能.有备忘录的日期有一个圆圈,单击圆圈显示备忘录.该实例适用浏览器:360.FireFox.Chrome.Safa ...
- 对Kernel panic-not syncing:No init found...init=option to kernel错误总结!
转载:http://blog.csdn.net/wavemcu/article/details/6950053 在移植Linux中很容易出现这样那样的问题,我也遇到过,现在就共享下人家的一些经验和自己 ...
- Play on Words 欧拉通路(回路)判断
Play on Words note: 判断一下连通性. #include <iostream> #include <cstdio> #include <cstring ...
- 微信js获得签名signature
服务器端: 1 获取微信js accessToken 备注:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token. 开发者需要进行妥善保存.access_ ...
- Linux分区有损坏修复
如果Linux分区有损坏情况,启动有问题,不能正常进入文本或图形界面.那么一般会出现提示,需要输入Root密码登录后采用fsck -t ext3 -r /usr/local 修复 , /usr/loc ...
- Android Studio开发RecyclerView遇到的各种问题以及解决
是大神总结的,我直接提供链接了,以便以后学习 大神链接: 问题一和解决:http://www.cnblogs.com/yunfang/p/5830953.html 问题二和解决:http://www. ...
- Timed Code
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作。这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了
dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ); dispatch_group_ ...
- 【阿里云产品公测】阿里云ECS服务器,PTS网站性能
作者:阿里云用户321房产网 系统环境:CentOS 6.3 运行组件:Nginx + php + mysql + 缓存加速为eAccelerator 运行网站:基于phpcms开发模板:321房产网 ...