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

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

Coaoa Touch layer : UIKit

Media layer : Core Graphics、Open GL ES、Core Animation

Core Services layer : Core Data、Foundation

Core OS layer

iOS 开发主要使用框架就是 Foundation 和 UIKit 框架

Foundation 框架为所有的应用程序提供最基本系统服务

  一个应用程序,UIKit 和其他的框架都是建立在 Foundation 框架上面的。Foundation框架是用 Objective-C 对Core Foundation 的框架里许多特性的封装

Foundation 功能:

  创建和管理集合,比如字典和数组

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

  创建和管理字符串

  提交和接收通知

  创建日期和时间对象

  自动发现IP网络上的设备

  操作URL流

  执行异步代码

UIKit 框架提供创建基于用户界面的类

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

UIKit 框架功能

  构建和管理你的用户界面

  捕获触摸和基于移动的事件

  呈现文字和web内容

  优化你的多任务程序

  创建定制的用户界面元素

其他的重要框架

Core Data 框架管理着应用程序数据模型

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

Core Data 框架功能:

  在库里存储和接收对象

  提供基本的undo/redo

  自动验证属性值

  过滤、分组和优化内存中的数据

  用[NSFetchedResultsController]管理表视图中的结果

  支持基于文档的应用程序

Core Grapics框架帮组你创建图形

高质量的图形对于所有的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图形

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

  访问底层图形设备

iOS 的主要框架的更多相关文章

  1. [转载]iOS 10 UserNotifications 框架解析

    活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...

  2. 关于第三方IOS的checkBox框架的使用

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  3. 漫谈iOS Crash收集框架

    漫谈iOS Crash收集框架   Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...

  4. 手把手教你如何搭建iOS项目基本框架

    手把手教你如何搭建iOS项目基本框架 今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做 ...

  5. ios开发——实用技术篇OC篇&iOS的主要框架

    iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...

  6. [iOS]数据库第三方框架FMDB详细讲解

    [iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封 ...

  7. IOS 与ANDROID框架及应用开发模式对照一

    IOS 和ANDROID操作系统都是眼下流行的移动操作系统,被移动终端和智能设备大量採用,两者都採用了先进的软件技术进行设计,为了方便应用开发两者都採用了先进的设计模式. 两者在框架设计上都採用了什么 ...

  8. <iOS 组件与框架> -- UIKit Dynamics

    UIKit Dynamics 结合 『iOS 组件与框架 』一书.总结的知识点与demo demo 地址: GitHub地址 一.概述 1.UIKit Dynamics 是 iOS 7 新增的内容.其 ...

  9. IOS 与ANDROID框架及应用开发模式对比一

    IOS 和ANDROID操作系统都是目前流行的移动操作系统,被移动终端和智能设备大量采用,两者都采用了先进的软件技术进行设计,为了方便应用开发两者都采用了先进的设计模式.两者在框架设计上都采用了什么技 ...

  10. 实用的IOS应用程序框架

    实用的IOS应用程序框架 目录 概述 概述

随机推荐

  1. mybatis的mapper中,实体非空检验问题

    因为项目变动,数据库需要删除一个字段,于是勤劳的我把项目中对应的实体属性也给弄掉了,可是没有弄彻底,mybatis里面的mapper没有管,当时感觉是选择性的插入: <if test=" ...

  2. android studio 换护眼的颜色步骤

    设置--->Editor-->General-->Default Text-->Background护眼色是#D2E3C7

  3. flex中image控件source属性改变的例子

    Download: main.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Applicat ...

  4. iOS---XMPP环境搭建过程

    什么是即时通信? 即时通信是目前Internet上最为流行的通讯方式, 各种各样的即时通讯软件也层出不穷, 服务提供商也提供了越来越枫木的通讯服务功能. 即时通讯有多重实现方式, XMPP就是其中一种 ...

  5. EasyUI加载树控件自动展开所有目录

    在这里如何加载树控件就不在熬述,在加载树控件后,树的节点全部展开,要在OnLoadSuccess事件中写代码:

  6. android studio 2.2.2下fragment的创建和跳转

    一,首先,Fragment是android应用中十分重要的一个功能,十分轻量化,也类似于activity一样,是一个个布局,可以相互跳转和传递参数.但是,它运行起来十分流畅,而且易于管理,下面是在学习 ...

  7. 曲线参数化的Javascript实现(理论篇)

    在关键帧动画的制作过程中,动画师在k物体运动的过程中,一般要确定2个参数: 1)运动轨迹(表示物体运动的路径): 2)速度曲线(表示物体随时间的速度变化). 对于运动轨迹通常选用一定的样条曲线,通过动 ...

  8. final修饰的变量是引用不能改变,还是引用的对象不能改变???

    对于这个问题,我们不能只记结论,要拿实例说话,参看以下代码: public class Demo { public static void main(String[] args) { final St ...

  9. Android深度探索--HAL与驱动开发----第六章读书笔记

    Linux驱动程序与其他类型的Linux程序一样拥有自己的规则,下面给出一个编写基本的Linux驱动的一般步骤: (1)建立Linux驱动的骨架(装载和卸载Linux驱动): (2)注册和注销设备文件 ...

  10. Best Coder Round#25 1001 依赖检测

    原题大致上就是检测一系列进程之间是否存在循环依赖的问题,形如: a->b->c->a,  a->a ,都行成了循环依赖,事实上可以视为“检测链表中是否存在环” AC代码: #i ...