1:原文链接:http://www.open-open.com/lib/view/open1343210425380.html

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

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 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图形
  • 创建更复杂的图形,比如数据虚拟化、模拟飞行,或者视频游戏
  • 访问底层图形设备

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

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

将别的框架添加到工程里

1 打开工程

2 点击项目名,显示project editor

3 在TARGETS列表中选中要添加框架的工程

4 点击project editor顶部的Build Phases

5 点击Link Binary With Libraries前面的三角形打开这个分组

6 通过点击添加(+)来添加一个框架

7 在列表中选择一个框架,然后点击Add按钮

转载于:https://www.cnblogs.com/85538649/archive/2012/08/07/2626244.html

iOS的主要框架介绍相关推荐

  1. iOS流媒体直播整个框架介绍(HLS、RTSP)

    iOS流媒体直播整个框架介绍(HLS.RTSP) 目录技术文章2016年7月17日 一.HTTP(WebService) 基于HTTP的渐进下载Progressive Download流媒体播放仅是在 ...

  2. 《企业级ios应用开发实战》一2.2 iOS框架介绍

    2.2 iOS框架介绍 iOS衍生自Mac OS X的成熟内核,但iOS操作系统更紧凑和高效,支持iPhone和iPod Touch的硬件.iOS继承了Mac OS X的风格,包括:统一的OS X 内 ...

  3. iOS 常用框架介绍

    iOS框架介绍      Cocoa Touch GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游戏 ...

  4. iOS 内购StoreKit 框架介绍

    StoreKit 框架介绍 一.StoreKit 能做什么? In-App Purchase 提供和促进内容和服务的应用内购买. Apple Music 检查用户的Apple Music功能并提供订阅 ...

  5. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  6. Radare2 框架介绍及使用

    Radare2 框架介绍及使用 欢迎入群交流 radare2 这是整个框架的核心工具,它具有debugger和Hexeditor的核心功能,使您能够像打开普通的文件一样,打开许多输入/输出源,包括磁盘 ...

  7. 支付宝客户端架构解析:iOS 容器化框架初探

    前言 由本章节开始,我们将从支付宝客户端的架构设计方案入手,细分拆解客户端在"容器化框架设计"."网络优化"."性能启动优化"." ...

  8. iOS 使用HealthKit框架实现获取今日步数

    Demo地址:我的github仓库 HealthKit hey!宝宝又来更新博客了! 今天早上查看天气,发现自己缺少一个查看天气的APP, 于是下载了一个"墨迹天气",结果宝宝在欣 ...

  9. iOS中ImageIO框架详解与应用分析

    2019独角兽企业重金招聘Python工程师标准>>> iOS中ImageIO框架详解与应用分析 一.引言 ImageIO框架提供了读取与写入图片数据的基本方法,使用它可以直接获取到 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记6 图像处理(三)形态学滤波(1):腐蚀与膨胀
  2. Android 占位符 %1$s %1$d
  3. 【译】An Opinionated Introduction to AutoML and Neural Architecture Search
  4. 《飞机大战》安卓游戏开发源码(三)
  5. 26.idea导入jar包
  6. activeMQ,spring的jmstemplate简单例子
  7. 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
  8. Android 网络学习之使用多线程下载,支持断点续传
  9. multipartfile获取文件路径_已知路径,通用获取文件名、后缀、类型
  10. wget下载文件命令
  11. OpenGL ES 之uniform和varying
  12. 【房屋租赁网管理系统】
  13. Chris Hadfield現身《ABS 2020》,各方菁英和THORBOT 雷神量化機器人一同進行深入探討
  14. 深度探讨,共创未来 | 思爱普(SAP) 助力碧桂园实现数字化转型
  15. 图像处理之高斯混合模型
  16. java 实现图片截取功能
  17. IOS加密技术之——3DES加密解密技术(记录)
  18. NeHe OpenGL教程 第二十九课:Blt函数
  19. python怎么撤销_关于Python:Python-如何删除/取消导入之前已导入的库
  20. 支付、清算和结算含义

热门文章

  1. 科密a1无法连接数据库_支持无线图传的稳定器——致迅A1-pro图传稳定器
  2. c语言综合作业答案,C语言作业答案
  3. win7系统,virtualBox导入centos7.3报错
  4. 鸿蒙应用案例:Ability应用与管理
  5. 安卓学习笔记06:Activity生命周期与启动模式
  6. 大数据学习笔记33:解决CentOS7上MySQL启动失败问题
  7. 利用R、Octave和NumPy求解线性方程组
  8. mosek 安装配置python_Windows系统Python解释器的安装配置
  9. c语言指针地址交换程序,C语言-基础教程-指针的地址分配
  10. 【英语学习】【WOTD】purview 释义/词源/示例