iOS的主要框架介绍

转自:iOS的主要框架介绍

框架介绍

框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。 IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和CoreGraphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动引入了。如果默认加入的框架不能满足你的应用程序的需求,你也可以加入需要的框架。

HelloWord 看框架

看看HelloWorld.xcodeproj项目里都包含了哪些框架(注:HelloWorld.xcodeproj是《YourFirst iOS App tutorial 》这篇教程里的一个项目)

  1. 在XCode里打开HelloWorld.xcodeproj项目(如果还没有打开)
  2. 在projectnavigator窗口里点击,点击Frameworks目录前面的三角形图标。你会看到:
    UIKit.framework,Foundation.framework,和CoreGraphics.framework
  3. 点击任意一个framework前面的三角,然后再点击Headers前面的三角,可以看到框架里的头文件。

系统框架层

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


iOS的主要框架介绍

两个基础框架

iOS应用程序基于Foundation和UIKit框架

1. Foundation

在你开发程序时,主要使用框架就是Foundation和UIKit,因为它们包含了你需要的大部分东西。

  • Foundation框架为所有的应用程序提供基本系统服务
    你的应用程序,UIKit和其它的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C对CoreFoundation框架里许多特性的封装。
  • 使用Foundation可以:
  1. 创建和管理集合,比如数组和字典

  2. 访问存储在应用程序里的图片和其它资源

  3. 创建和管理字符串

  4. 提交和接收通知

  5. 创建日期和时间对象

  6. 自动发现IP网络上的设备

  7. 操作URL流

  8. 执行异步代码

    你已经在《Your First iOSApp》里使用到了Foundation框架。比如,你使用一个NSString类的实例存储用户输入的userName。你还使用了Foundation框架的initWithFormat方法创建了一个字符串。
    UIKit框架提供创建基于触摸用户界面的类

2. UIKit

所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。

  • 使用UIKit可以:
  1. 构建和管理你的用户界面
  2. 捕获触摸和基于移动的事件
  3. 呈现文字和web内容
  4. 优化你的多任务程序
  5. 创建定制的用户界面元素

在《YouFirstiOS AppTutorial》里,你也使用到了UIKit。当你仔细查看程序是怎么运行起来的时候,你会看到UIApplicationMain函数创建一个UIApplication类的实例,这个实例会捕获进来的用户事件。你实现UITextFieldDelegate协议,然后在用户按下Done时隐藏键盘。实际上,你是在使用UIKit创建用户界面上的UITextField,UILabel,和UIButton类。

你需要知道的其它重要的框架

Core Data , Core Graphics, CoreAnimation,和OpenGLES框架都是高级的技术。所以这些框架对于你开发应用程序也是很重要的,它们都需要时间去学习和掌握。

1. CoreData框架管着理应用程序数据模型

Core Data提供对象的管理,使用CoreData,你可以创建模型对象,并管理这些对象。你管理这这些对象间的联系并修改数据。CoreData提供的内建SQLlite技术可以高效的管理数据。
使用Core Data可以:

  • 在库里存储和接收对象
  • 提供基本的undo/redo
  • 自动验证属性值
  • 过滤、分组和优化内存中的数据
  • 用[NSFetchedResultsController]管理表视图中的结果
  • 支持基于文档的应用程序
2. CoreGraphics框架帮助你创建图形

高质量的图形对于所有的iOS应用程序都是很重要的。在iOS中最简单且最快捷的创建图形的方式是使用UIKit框架提供的基于预渲染图形的视图和控件,然后让UIKit和iOS完成绘制。但是当你需要创建复杂的图形时,CoreGraphics则提供了更底层的库来帮助你。

使用Core Graphics可以:

  • 创建基于路径的绘图
  • 抗锯齿渲染
  • 添加梯度、图片和颜色
  • Use coordinate-spacetransformations.
  • 创建、显示和分析PDF文档
3. CoreAnimation允许你创建高级的动画和虚拟效果

UIKit提供建立在Core Animation之上的动画。如果你需要比UIKit能力更高级的功能,可以直接使用CoreAnimation。Core Animation接口包含在Quartz Core框架里。使用CoreAnimation可以创建嵌套的对象,并且可以对它们操作、旋转、缩放和转换。使用Coreanimation,你可以创建动态的用户界面而不用使用更底层的图形API,如OpenGL ES。

使用Core Animation可以:

  • 创建定制动画
  • 添加定时函数和图形
  • 支持帧动画
  • Specify graphical layoutconstraints.
  • Group multiple-layerchanges into anatomic update.
4. OpenGL ES框架提供2D和3D绘图工具

OpenGL ES支持2D和3D绘图,Apple的OpenGL ES实现通过硬件提供了高速的全屏游戏式的应用程序。

使用OpenGL ES可以:

  • 创建2D和3D图形
  • 创建更复杂的图形,比如数据虚拟化、模拟飞行,或者视频游戏
  • 访问底层图形设备

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

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


iOS的主要框架介绍

将别的框架添加到工程里

1 打开工程
2 点击项目名,显示project editor
3 在TARGETS列表中选中要添加框架的工程
4 点击project editor顶部的BuildPhases
5 点击Link Binary WithLibraries前面的三角形打开这个分组
6 通过点击添加(+)来添加一个框架
7 在列表中选择一个框架,然后点击Add按钮

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容

  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    wo不懂阅读 1,343评论 3 3
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    ch123阅读 1,699评论 0 1
  • 转载:http://blog.csdn.net/lover870920/article/details/50350...
    vicki753阅读 2,609评论 0 4
  • 6转载-->>IOS框架和服务 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,...
    李小六_阅读 3,523评论 2 24
  • 2016-12-25第一周 小道消息中的猴子看人物提出一个我们通过每周一篇文章改善自己的生活,大为赞同,so开始我...
    莎莎2016阅读 326评论 0 1