框架整体介绍

OS应用程序基于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按钮

表 1  设备中的框架

名称


最先引入


前缀


描述


Accelerate.framework


4.0


cblas
,
vDSP


包含加速数学和DSP函数。 请查看 加速框架参考 。


AddressBook.framework


2.0


AB


包含直接访问用户联系人数据库的函数。请查看地址簿框架参考


AddressBookUI.framework


2.0


AB


包含显示系统定义的联系人挑选界面和编辑界面的类。请查看iOS地址簿UI框架参考 。


AssetsLibrary.framework


4.0


AL


包含显示用户照片和视频的类,请查看资源库框架参考 。


AudioToolbox.framework


2.0


AU
,
Audio


包含处理音频流数据以及播放或录制音频的接口。请查看音频工具箱框架参考


AudioUnit.framework


2.0


AU
,
Audio


包含加载并使用音频单元的接口。请查看音频单元框架参考.


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
,
GL


包含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
,
Sec


包含管理证书、公钥私钥以及信任策略的接口。请查看Security框架参考


StoreKit.framework


3.0


SK


包含用于处理与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考


SystemConfiguration.framework


2.0


SC


包含用于处理设备网络配置的接口。请查看System Configuration框架参考


UIKit.framework


2.0


UI


包含iOS应用程序用户界面层使用的类和方法。请查看UIKit 框架参考

时间: 2024-08-30 03:56:56

框架整体介绍的相关文章

xUtils框架的介绍(一)

微信账号申请终于通过了,这是我们第一次Android干货分享. 想来是第一次,要对得起“干货”二字. 今天我要为大家推荐的是一个Android基于快速开发的一个框架——xUtils, 它是在aFinal基础上进行重构和扩展的框架, 相比aFinal有很大的改善.同时,如果如果你的应用是基于网络的, 那么只要处理得当,它会让你彻底的摆脱各种工具类和重复代码的困扰. 好的,废话不多说,程序猿们还是代码说起. xUtils 包含了很多实用的android工具.xUtils 源于Afinal框架,   

Ext Js MVC系列一 环境搭建和MVC框架整体认识

因为最近项目当中需要用ext js 4做前端框架,所以就必须得学习它了.这个系列主要总结ext js MVC框架,这是ext js 4新增的开发模式,这篇文章主要从以下几点来进行总结. 1,项目目录结构2,相关css文件和js文件引用3,MVC框架整体认识 项目目录结构 Ext js 4遵循统一的目录结构,这个有点类似于ASP.NET MVC.MVC中,所有的类都放在app目录中,这个目录下有四个子目录(每个子目录代表一个命名空间),主要有controller,model,view和store.

关于jsp商城开发中一些常用框架的介绍

Struts跟Tomcat.Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使java商城产品以及jsp商城开发者能更深入的了解其内部实现机制.除此之外,在 java商城开发 中Struts的优点主要集中体现在两个方面:Taglib和页面导航.Taglib是Struts的标记库,比较灵活,能大大提高开发效率.另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点.struts历经6年多的发展,是目前用户数最

上课笔记_Ajax框架,DWR介绍,应用,例子

使用Ajax框架 1. 简化JavaScript的开发难度 2. 解决浏览器的兼容性问题 3. 简化开发流程 常用Ajax框架 Prototype 一个纯粹的JavaScript函数库,对Ajax提供良好支持 jQuery 1.非常优秀的JavaScript库,对Ajax提供了良好的支持 2.与Prototype设计思想不同的是在使用jQuery之后,开发者操作的不再是DOM对象而是jQuery对象 DWR 1.        非常专业的Java Ajax框架 2.        通过DWR框架

Django - Django框架 简单介绍

Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码的Web应用框架, 由Python写成. 採用了MVC的软件设计模式, 即模型M, 视图V和控制器C. 它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的站点的, 并于2005年7月在BSD许可证下公布. 这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的.

家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)

家庭洗车APP --- Android客户端开发 之 网络框架包介绍(一) 上篇文章中给大家简单介绍了一些业务.上门洗车APP --- Android客户端开发 前言及业务简单介绍,本篇文章给大家介绍下网络框架.之前也了解过一些开源网络通讯架构.也大概看了一部分源代码.比方Afinal.Volley.AndBase.Android-async-http等,感觉各自都有各自的优劣,自己也曾封装过一些简单的网络架构,感觉有非常多地方须要注意和优化.这里就不贴出来献丑了,感兴趣的朋友能够去查阅学习上面

webUI自动化测试框架---”pyswat“介绍

webUI自动化测试框架---"pyswat"介绍 大家好我是lamecho 辣么丑,今天给大家介绍一款web自动化测试框架pyswat.  "pyswat"是一个做web页面自动化测试的框架(python-selenium-web-auto-test缩写).基于python,利用hook技术及对selenium封装,做到完全录制案例(操作步骤)不需要手写脚本,很方便有木有!:lol 举个栗子,做网站登录操作在python中你要这样写一大堆脚本 而通过pyswat的

开源实体映射框架EmitMapper介绍

开源实体映射框架EmitMapper介绍 综述 EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/. EmitMapper映射效率比较高,接近硬编码.EmitMapper采用emit方式在运行时动态生成IL,而其他映射框架多是采用反射机制.此外EmitMapper最大限度地减少了拆箱装箱操作和映射过程中的额外的调用. EmitMapper支持.net的所有平台:Framework 3.5.Microsoft Silverlight 3

.NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器学习算法以及提供计算机视频.音频.信号处理以及统计应用相关的解决方案.该项目使用C#语言编写,项目主页:http://accord-framework.net/ 说明:该文章只是一个基本介绍,主要内容是翻译的官方文档和介绍,部分英文表述个人能力有限,不太熟悉,所以直接照搬原文,有比较确切的知道中文名