zoukankan      html  css  js  c++  java
  • iOS的主要框架介绍

    本文是《Sunvey the Major Framworks》一文的翻译

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

           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的主要框架介绍 

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

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

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

    iOS的主要框架介绍

    将别的框架添加到工程里

        1 打开工程

        2 点击项目名,显示project editor

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

        4 点击project editor顶部的Build Phases

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

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

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

  • 相关阅读:
    不可小视视图对效率的影响力
    Maximum Margin Planning
    PhysicsBased Boiling Simulation

    Learning Behavior Styles with Inverse Reinforcement Learning
    Simulating Biped Behaviors from Human Motion Data
    Nearoptimal Character Animation with Continuous Control
    Apprenticeship Learning via Inverse Reinforcement Learning
    回报函数学习的学徒学习综述
    Enabling Realtime Physics Simulation in Future Interactive Entertainment
  • 原文地址:https://www.cnblogs.com/cmblogs/p/4560452.html
Copyright © 2011-2022 走看看