iOS开发常用框架总览!

作者 : 开心源码 本文共6116个字,预计阅读时间需要16分钟 发布时间: 2022-05-12 共179人阅读

框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或者函数可以被应用程序调用。

IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它增加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和Core Graphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动引入了。假如默认加入的框架不能满足你的应用程序的需求,你也可以加入需要的框架。
看看HelloWorld.xcodeproj项目里都包含了哪些框架(注:HelloWorld.xcodeproj是《Your First iOS App tutorial 》这篇教程里的一个项目)

1.在XCode里打开HelloWorld.xcodeproj项目(假如还没有打开)

  1. 在project navigator窗口里点击,点击Frameworks目录前面的三角形图标。你会看到:UIKit.framework,Foundation.framework, 和CoreGraphics.framework

  2. 点击任意一个framework前面的三角,而后再点击Headers前面的三角,可以看到框架里的头文件。

每个框架对应IOS系统里的一层,每层建立在它下面层的上面。应该尽量使用上层的框架来代替下面的框架。更高层次的框架是对底层框架基于对象的笼统。
1.在XCode里打开HelloWorld.xcodeproj项目(假如还没有打开)

2. 在project navigator窗口里点击,点击Frameworks目录前面的三角形图标。你会看到:UIKit.framework,Foundation.framework, 和CoreGraphics.framework

3. 点击任意一个framework前面的三角,而后再点击Headers前面的三角,可以看到框架里的头文件。

每个框架对应IOS系统里的一层,每层建立在它下面层的上面。应该尽量使用上层的框架来代替下面的框架。更高层次的框架是对底层框架基于对象的笼统。
</pre>

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 Graphics, Core Animation,和OpenGLES框架都是高级的技术。所以这些框架对于你开发应用程序也是很重要的,它们都需要时间去学习和掌握。

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图形

  • 创立更复杂的图形,比方数据虚拟化、模拟飞行,或者者视频游戏

  • 访问底层图形设施

根据需要向项目中增加其它框架

还有许多框架可以增加到你的程序里。当你决定使用一个框架但项目里却没有引入这个框架时,你就需要将它加入到你的项目里。

将别的框架增加到工程里

<pre class=”prettyprint hljs cmake” style=”padding: 0.5em; font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;”> 1 打开工程
2 点击项目名,显示project editor
3 在TARGETS列表中选中要增加框架的工程
4 点击project editor顶部的Build Phases
5 点击Link Binary With Libraries前面的三角形打开这个分组
6 通过点击增加(+)来增加一个框架
7 在列表中选择一个框架,而后点击Add按钮</pre>

名称最先引入前缀形容
Accelerate.framework4.0cblas,vDSP包含加速数学和DSP函数。 请查看 加速框架参考 。
AddressBook.framework2.0AB包含直接访问客户联络人数据库的函数。请查看 地址簿框架参考 。
AddressBookUI.framework2.0AB包含显示系统定义的联络人筛选界面和编辑界面的类。请查看 iOS地址簿UI框架参考 。
AssetsLibrary.framework4.0AL包含显示客户照片和视频的类,请查看 资源库框架参考 。
AudioToolbox.framework2.0AU,Audio包含解决音频流数据以及播放或者录制音频的接口。请查看 音频工具箱框架参考 。
AudioUnit.framework2.0AU,Audio包含加载并使用音频单元的接口。请查看 音频单元框架参考 .
AVFoundation.framework2.2AV包含播放或者录制音频的Objective-C接口。请查看 AV Foundation框架参考 .。
CFNetwork.framework2.0CF包含通过WiFi或者者蜂窝无线访问网络的接口。请查看CFNetwork框架参考 。
CoreAudio.framework2.0Audio包含Core Audio框架使用的各种数据类型。请查看 Core Audio 框架参考 。
CoreData.framework3.0NS包含管理应用程序数据模型的接口。请查看 Core Data 框架参考 。
CoreFoundation.framework2.0CF提供少量基本软件服务,包括常见数据类型笼统、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。请查看rov Core Foundation框架参考 。
CoreGraphics.framework2.0CG包含Quartz 2D接口。请查看 Core Graphics 框架参考 。
CoreLocation.framework2.0CL包含确定客户方位信息的接口。请查看 Core Location 框架参考 。
CoreMedia.framework4.0CM包含操作音频和视频的底层例程。请查看 Core Media 框架参考 。
CoreMotion.framework4.0CM包含访问加速度计以及陀螺仪的数据的接口。请查看Core Motion 框架参考 。
CoreTelephony.framework4.0CT包含访问电话相关的信息的例程。请查看 Core Telephony 框架参考 。
CoreText.framework3.2CT包含一个文本的布局渲染引擎。请查看 Core Text参考集 .。
CoreVideo.framework4.0CV包含操作音频和视频的底层例程。请不要直接使用该框架。
EventKit.framework4.0EK包含访问客户日历事件数据的接口。请查看 Event Kit 框架参考 。
EventKitUI.framework4.0EK包含显示标准系统日历界面的类。请查看 Event Kit UI 框架参考 。
ExternalAccessory.framework3.0EA包含与外设进行通讯的接口。请查看 External Accessory 框架参考 。
Foundation.framework2.0NS包含Cocoa Foundation层的类和方法。请查看 Foundation 框架参考 。
GameKit.framework3.0GK包含点对点连接管理接口。请查看 Game Kit 框架参考 。
iAd.framework4.0AD包含在应用程序中显示广告的类。请查看 iAd 框架参考 。
ImageIO.framework4.0CG包含读取或者写入图像数据的类。请查看 Image I/O 参考集 。
IOKit.framework2.0N/A包含设施所使用的接口。请不要直接使用此框架。
MapKit.framework3.0MK包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。请查看 Map Kit框架参考 。
MediaPlayer.framework2.0MP包含显示全屏视频的接口。请查看 Media Player 框架参考 。
MessageUI.framework3.0MF包含撰写和排队发送电子邮件信息的界面。请查看 Message UI 框架参考 。
MobileCoreServices.framework3.0UT定义系统支持的统一类型标识符(UTIs)。
OpenAL.framework2.0AL包含OpenAL接口。OpenAL是一个跨平台的方位音频库。如需进一步理解,请访问 http://www.openal.org 。
OpenGLES.framework2.0EAGL,GL包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。请查看 OpenGL ES 框架参考 。
QuartzCore.framework2.0CA包含Core Animation接口。请查看 Quartz Core 框架参考 。
QuickLook.framework4.0QL包含预览文件接口。请查看 Quick Look 框架参考 。
Security.framework2.0CSSM,Sec包含管理证书、公钥私钥以及信任策略的接口。请查看 Security框架参考 。
StoreKit.framework3.0SK包含用于解决与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考 。
SystemConfiguration.framework2.0SC包含用于解决设施网络配置的接口。请查看 System Configuration框架参考 。
UIKit.framework2.0UI包含iOS应用程序客户界面层使用的类和方法。请查看UIKit 框架参考 。

喜欢的话点赞+1或者关注多多支持哦 小编会经常给小伙伴们升级关于IOS当下热点。

另外小编给大家推荐一个iOS技术交流群:458839238!群内提供数据结构与算法、底层进阶、swift、逆向、整合面试题等免费资料
附上一份收集的各大厂面试题(附答案) ! 群文件直接获取

各大厂面试题

文章来源网络 如有侵权请联络小编删除

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » iOS开发常用框架总览!

发表回复