关于框架

转自:http://www.guomii.com/posts/23898


框架:

每个应用都是由两个部分组成:一部分是你编写的代码,另一部分就是苹果公司提供的框架(framework)。框架中包含了能够被你的应用调用的方法库。一个框架同时可以被多个应用访问。

frameworks

你开发的任何应用都会与多个框架相连接。通过框架提供的应用程序编程接口(API)便能利用它。API 是在头文件中声明的,指定了可用的对象、类、数据结构以及协议。苹果编写的框架预先估测了你可能需要实现的基本功能。通过使用框架既能节省时间和精力,又能保证代码的高效和稳定。只有通过系统框架才能够访问底层硬件。



主要框架纵览:

框架本身是一个文件夹,里面含有公用库文件、用来访问这些库的头文件以及其他图片和声音等资源文件。公共库定义了应用可以调用的函数和方法。

在你的开发过程中可以使用 iOS 提供的众多框架,将框架添加到工程中你的应用就可以链接它了。多数应用会链接到 Foundation、UIKit 和 Core Graphics 框架。根据你选择的应用模板不同,可能还会包含其他框架。如果默认的核心框架无法满足你的开发需要,你随时都可以往工程里添加另外的框架。

如何查看 HelloWorld.xcodeproj 工程中包含的框架…

  1. 在 Xcode 中打开 HelloWorld.xcodeproj 工程(如果尚未打开的话)。在之前的《你的第一个 iOS 应用》教程中你曾经创建了这个工程。
  2. 打开工程导航栏中的 Frameworks(框架)文件夹,点按左侧的三角形便可以展开它。
    你应该可以看到 UIKit.frameworkFoundation.framework 和 CoreGraphics.framework 三个框架。
  3. 点按各框架左侧的三角形展开框架后,再点按 Headers(头文件)文件夹左侧的三角形便可以查看里面的头文件。

每个框架都从属于 iOS 系统的一个层级。每个层级都建立在它下面的层级基础上。请尽可能使用高层级的框架,避免使用低层级的框架。较高层级的框架为低层级结构提供面向对象的抽象。

framework_layer

iOS 应用是基于 Foundation 和 UIKit 框架的

当你开始编程时,你主要会使用 Foundation 和 UIKit 框架,它们能够覆盖你的大部分开发需要。

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

无论是你的应用还是 UIKit 框架等众多框架都是建立在 Foundation 框架的基础架构之上的。Foundation 框架为 Core Foundation 框架的许多功能提供了 Objective-C 的封装。

Foundation 框架可以用来:

  • 创建并管理群体,比如数组和字典。
  • 访问你应用中存储的图片等资源文件。
  • 创建并管理字符串。
  • 发送并观察通知。
  • 创建日期和时间对象。
  • 自动发现 IP 网络上的设备。
  • 操作 URL 流。
  • 异步执行代码。

在《你的第一个 iOS 应用》教程中,你曾使用了 Foundation 框架。比如,你使用了 NSString 类的实例来存储用户在 userName 输入的文字。你还使用了 Foundation 的实例方法 initWithFormat: 来创建欢迎词字符串。

UIKit 框架提供了用于创建触摸界面的类

所有 iOS 应用都基于 UIKit 框架,缺少了它你的应用将无法运行。UIKit 提供了绘制画面、处理事件和创建通用用户界面元素的基础架构。UIKit 还会管理要显示在屏幕上的内容从而对复杂的应用进行组织。

UIKit 框架可以用来:

  • 创建并管理用户界面。
  • 处理触摸和动作事件。
  • 显示文字和网页内容。
  • 为多任务优化你的应用。
  • 创建自定义的用户界面元素。

在《你的第一个 iOS 应用》教程中,你曾使用了 UIKit 框架。在检查应用是如何启动的时候,你曾看到 UIApplicationMain 函数创建了一个 UIApplication 类的实例,它会处理接收到的用户操作事件。你实现了  协议从而能够让用户通过点按 Done 按钮收起键盘。实际上,你在使用 UITextFieldUILabel 和 UIButton 类创建整个用户界面的时候就已经用到了 UIKit。

你还应该了解其他几个重要的框架

Core Data、Core Graphics、Core Animation 和 OpenGL ES 框架都是十分先进的技术。尽管这些框架对你的应用而言十分重要,但要掌握它们还需加以学习。

Core Data 框架管理应用的数据模型

Core Data 提供了对象图管理。使用 Core Data 可以创建模型对象,也叫被管理对象。要管理这些对象间的关系以及变更其中的数据需要用到本框架。Core Data 的优势在于使用内置的 SQlite 技术来存储和管理数据。

Core Data 框架可以用来:

  • 向存储器中保存并取回对象。
  • 支持基本的撤销/重做。
  • 自动校验属性值。
  • 过滤、分组并组织内存数据。
  • 使用 [NSFetchedResultsController] 管理表格视图的结果。
  • 支持 document-based(基于文档的)应用。

Core Graphics 框架帮你创建图形

对 iOS 应用来说,高品质的图形至关重要。在 iOS 中创建图形的最简单、最有效的方法是使用事先渲染好的 UIKit 框架标准视图与控件资源并让 iOS 自行绘制。若你需要创建复杂的图形,Core Graphics 还为你提供了底层的图形库。Core Graphics 也叫做 Quartz,能够处理原生的二维(2D)矢量图和基于图片的渲染工作。

Core Graphics 框架可以用来:

  • 进行基于路径的图形绘制。
  • 进行抗锯齿渲染。
  • 添加渐变填充、图像和颜色。
  • 使用坐标空间变换。
  • 创建、显示以及分析 PDF 文档。

Core Animation 能够让你制作高级的动画和视觉效果

UIKit 提供了基于 Core Animation 技术的动画效果。如果你需要比 UIKit 自带的效果更高级的动画,你可以直接使用 Core Animation。Core Animation 的接口在 Quartz Core 框架中。使用 Core Animation,你可以创建组合图层对象,然后操作、旋转、缩放、变形等。并且通过使用 Core Animation 中常见的视图式抽象可以创建动态用户界面而无需使用底层图形 API 例如 OpenGL ES。

Core Animation 框架可以用来:

  • 创建自定义动画。
  • 对动画添加时间控制。
  • 支持关键帧动画。
  • 约束图形布局的比例。
  • 将多个图层变为原子更新。

OpenGL ES 框架提供 2D 和 3D 绘制工具

OpenGL ES 支持基本的 2D 和 3D 绘图。苹果公司实现的 OpenGL ES 标准紧密配合设备的硬件,可以用来制作高帧率的全屏游戏类应用。

OpenGL ES 框架可以用来:

  • 创建 2D 和 3D 图形。
  • 制作更多复杂的图形,例如数据可视化、飞行模拟或者视频游戏等。
  • 访问底层图形硬件。

向工程里添加你需要的其他框架

你可以在应用开发中使用许多框架。当你决定使用一个尚未包含在工程里的框架时,你需要将该框架添加到你的工程中,这样应用才可以链接到该框架。

project_editor

如何将 HelloWorld.xcodeproj 工程链接到其他的框架…

  1. 在 Xcode 中打开 HelloWorld.xcodeproj 工程(如果尚未打开的话)。
  2. 在工程导航栏中点选 HelloWorld 工程,使其在工程编辑器中显示出来。
  3. 在 Targets 列表里点选 HelloWorld,将其指定为你想要添加框架的目标。
  4. 点选工程编辑器顶端的 Build Phases 标签。
  5. 打开 Link Binary With Libraries 区块,点按它左侧的三角形即可展开。
  6. 点按添加按钮(+)。
  7. 在弹出的列表里选择一个框架并点按 Add 添加。

要查看完整的框架列表以及了解关于这些框架的知识,请阅读《iOS Technology Overview》文档。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值