[IOS/翻译]Core Services Layer

本文是本人自己辛苦翻译的,请转载的朋友注明,翻译于Z.MJun的CSDN的博客 http://blog.csdn.net/Zheng_Paul,感谢。


翻译于2015年10月4日


Core Services Layer

这个核心服务层包含应用的基本系统服务。关键这些服务是在核心功能和核心功能库之间,全部的应用都必须使用这些基础类型。

这个层同一时候包含个别的技术,比如本地,iCloud,公共媒体和网络。

高级别的特性

接下来的部分描写叙述的是一些在核心服务层下高级别的特性

  • 点对点服务(Peer-to-Peer Services)

    多点连接库提供了点对点的连接超过蓝牙。你能够初始化点对点连接和附近的设备进行交互会话。

    尽管点对点连接主要用在游戏上。可是你能够使用这个特性在其它类型的应用上。

  • iCloud 存储(iCloud Design Guide

    iCloud存储让应用写用户文档和数据到本地中心。用户能够从他们的电脑或者IOS设备訪问这些。使得用户的文档存储在ICloud下,用户就能够不须要在同步的情况下。使用其它设备来改动或者查看他们的文档,明白的转移文件。安全的存储文档到用户的iCloud账号下。

    即使用户丢失了设备。文档也还在iCloud存储里。

    应用能够使用这两个iCloud存储特性方法。

    • iCloud document storage 文档存储

      能够把文档和数据存储在用户的iCloud账号下
    • iCloud key-value data storage 钥匙数据存储

      能够通过应用间的接口分享小数据
    • CloudKit storage

      当你想创建公共分享内容,或者管理自己数据传输

    很多应用使用iCloud文档通过iCloud账号来分享文档。

    用户关心文档什么时候通过设备分享,或者他们能够看见和管理这些来自共享的文档。与之相反,iCloud key-value的数据用户是看不见的。可是,这是一个方式通过应用接口分享这个小数据(10k)。应用应该使用这个特性来存储非临界应用数据。比如,preferences配置。而不是重要的应用数据。

  • 对象Block (Blocks Programming Topics) (Guide)

    Block Objects是基于C语言结构,能够使用在C语言代码下和OBJ-c语言代码下。一个Block对象是本质上是一个没有名称的功能和数据通过这方法获得,一些在其它应用里面是通过呼叫closure或者lambda。Blocks有使用独特,如callbacks或者在一个地方你须要一个方法简单的结合运行的代码和相关的数据。

    在IOS,blocks通常使用在

    • 相似替代Delegate和Delegate方法
    • 相似替代callback功能
    • 运行一次性操作的完毕处理程序
    • 便于在和集中的全部item运行任务
    • 和dispatch queues一起使用,运行异步任务
  • 数据保护(App Programming Guide for iOS

    数据保护同意应用在一些设备中使用更有优势的经过内置加密的用户数据。

    当你的应用指定一个须要保护的特殊文件,系统会使用加密来存储这个文件到硬盘上。当设备上锁,你的应用甚至黑客入侵,都不能訪问到这个文件。

    可是,当用户解锁设备。应用就能够使创建的解密文件来訪问文件。你能够使用不同级别的数据保护。

    实现数据保护你须要考虑你要怎么创建和管理你想保护的文件。

    应用必须设计成保护创建时的数据。和当用户锁与解锁设备下,訪问文件情况。

  • 支持文件分享

    分享文件支持让应用在iTunes9.1或更高的版本号上能够获得用户数据。

    一个应用须要声明支持文件分享,在/Documents 的字典下分享内容。用户能够把分享到iTunes的文件移进或移出这个字典。这个特性不同意应用在同一个设备上从其它应用分享文件到应用里。这个特性须要pasteboard和一个文档管理对象。

    同意分享文件到你的应用里

    • 加入UIFileSharingEnabled Key到你的应用Info.plist里面,设置这个值为YES
    • 把你想分享的文件放在应用的Documents下
    • 当设备和电脑相连接时,iTunes就会显示这个文件分享到显示在选择设备的表现上。
    • 用户能够加入文件到字典下,或者吧文件移到桌面。

    应用支持文件分享,应该具有管理他们的能力。

    当文件被添加到Documents下,和作出对应的响应。比如。你的应用吧一些显得内容通过接口加入到这里,你不应该吧这个文件夹的文件列表呈现给用户,而是告诉他们决定怎么使用这些文件。

  • GCDGuide

    GCD是一个BSD级别的技术,能够在应用中管理运行中的任务。GCD结合异步编译模式。是一种非常方便和高效。不同线程的高级语言的模式。GCD同一时候为低级别任务提供很多便捷的方法,如,阅读和编写文件描写叙述。实现定时器。监视信号和处理事件。

  • In-app Purchanse

    In-App Purchase提供出售应用中指定的内容,服务。和iTunes内容到你的应用里。

    使用StoreKit库能够实现这些特性,库提供了使用iTunes账号来处理交易事项。应用控制了整个用户体验和可视化支付展现的内容或者服务。

    对于能够下载的内容。你能够承载自己的内容或者让苹果服务帮你承载。

  • SQLite

    SQLite库提供了一个高效内嵌式数据库在应用中,你能够不须要使用一个外置的数据库服务。

    对于应用,你能够创建本地的数据库和管理或者记录文件。

    这个库为一般使用者设计,具有高效的訪问和处理能力。

    訪问SQLite库的头文件在/usr/include/sqlite3.h。在Xcode的安装路径下。

  • 支持XML documentation for libxml2

    这个功能库提供了NSXMLParser类处理来自XML文档的内容。另外,还支持操作在libxml2库下XML数据。

    这个是开源的库。让你快熟的解析或者编写XML数据或者转化XML内容为HTML。

    libxml2库的头文件在/usr/include/libxml2/ 下,在Xcode的安装路径下。


核心服务库 Core Services Framework

接下来要介绍的是这个库和库下的功能

列表


  • 5.0 系统用户 Accounts.framework

    提供了一种单一的登录模式。

    这个模式避免了多账号登录。而且优化的登录体验。能够通过这个库登录和改动用户数据。

    同一时候。为你的应用简化了管理时的授权问题。

    使用这个库是能够联合Social framework一起使用。

    (AC)

  • 2.0 通讯录 AddressBook.framework

    直接进入用户的通讯录。假设你的应用须要使用通讯录信息,你能够使用这个库来进入和改动通讯录信息。如,需找近期加入通讯录的信息而且显示信息。(AB)

  • 6.0广告 AdSupport.framework

    提供用于广告目的的标识符的訪问。这个框架还提供了一个标志,推断用户是否选择了广告跟踪。在使用标识符訪问前,应用须要可读。而且忠诚于广告追踪。

    (AS)

  • 2.0 网络处理 _CFNetwork.framework_ (Guide)

    一个以C语言为基础,面向对象。高效的处理网络库。这库提供很多处理网络组件堆的细节和更加easy使用底层的模块。如BSD socket。而且简化了FTP,HTTP服务,或者解决DNS host.(CF)

    • 使用BSD sockets
    • 使用SLL或者TLS时候,创建加密链接
    • 解决DNS hosts
    • 为HTTP服务,验证HTTP服务。HTTPS服务等工作
    • 为FTP服务工作
    • 公布,处理和浏览 Bonjour服务等(Guide
  • 8.0 云处理 _CloudKit.framework_

    提供了一个通道从你的应用到ICloud来数据传输。不同于其它iCloud技术。这样的传输更加直接。这个库给予了当数据产生变化时。你能够控制他的能力。

    同一时候能够使用它管理全部的类型数据。

    应用能够通过他把商店数据直接的分享给全部使用者,这个公共库是设应用绑定的。即使你没有注冊iCloud账号。

    应用开发人员,能够直接在这里管理数据,而且能够了解到用户的不论什么改动数据的行为。

    (CK)

  • 3.0 核心数据 _CoreData.framework_

    是一项管理数据模型技术。Model-View-Controller应用。这个库有意使得应用使用的数据模型都是最高标准的。而不是定义数据结构,在xcode里面使用图形工具来构建一个模式表示数据模式。

    在应用运行的时候,实例中的数据模式的创建,管理和可视化都是通过这个库完毕的。

    (NS)

    • 对象数据存储在高性能的SQLite数据库
    • 一个NSFetchedResultsController类管理tableView的结果
    • 管理重做/恢复的能力在基础文本改动能力之上
    • 支持属性值的验证
    • 支持继承和确保类之间的关系持续一致
    • 支持在内存里形成组,筛选数据和组织数据能力

      假设你将要准备开发一个新的应用或者计划升级已经存在的应用。

      你应该要考虑使用这个库。举一个样例在IOS应用里使用这个库,请查看Core Data Tutorial for iOS

  • 2.0 核心功能 _CoreFoundation.framework_

    一些列基于C语言的接口。提供最基础的数据处理。和IOS服务特点。

    (CF)

    • 集合数据类型(数组,组,和其它)
    • Bundles
    • 字符串String管理
    • 时间Date和Time管理
    • 原始数据快管理
    • 网络连接,网络流管理
    • 多线程,循环运算
    • 端口Port和socket连接

      这个库和Foundation库有非常大的关系。提供基于OBJ-c的接口一样的基础特性。当你须要混合类功能或者类型时。你能够利用两个不同类件存在的“toll-free bridging”,这个“toll-free bridging”指的是在一些方法里使用这个库和库类型交换和随意一个库。

      这个是的很多数据类型能够使用,包含集合和字符串数据类型。

      The class and type descriptions for each framework state whether an object is toll-free bridged and, if so, what object it is connected to。

  • 2.0 核心位置 _CoreLocation.framework_ (Guide)

    这个库为应用提供位置和标题信息。对于位置信息,这个库使用了GPS,cell,或者wifi遥控。来寻找用户的实际维度和精度。你能够在应用里使用这个技术为用户提供坐标信息。比如,你可能有一个业务是想要获得用户附近的餐厅。商店或者工厂等。或者是他当前的正确的位置。(CL)

    • 在有陀螺仪的IOS设备中訪问指南针信息
    • 在地图上或者蓝牙信息内获取监測地区信息
    • 使用低能量的本地搜索
    • 和Mapkit一同使用,在某种特定的情况下能够提高坐标质量,比如。导航。
  • 4.0 核心媒体 _CoreMedia.framework_

    为AVFoundation库提供了底层的图像类型。很多应用须要使用到这个库,可是他也仅仅是为非常少一部分开发人员使用,用于精确地创建或者展现音频和视频内容。(CM)

  • 4.2 核心手势 _CoreMotion.framework_

    为设备提供一组基于手势数据的接口。库支持訪问原始和处理过的加速器数据使用一套新的基于块的接口。

    自带陀螺仪的设备,你能够检測原始的陀螺仪数据和,基于陀螺仪数据的游戏,或者其它使用到手势的应用,或者像一个方法来提高用户体验。自带运动统计的硬件设备,你能够訪问这些数据,而且把数据用在保健的活动上。(CM)

  • 4.2 核心电话 _CoreTelephony.framework_

    为拥有打电话功能的设备提供了一个基于手机信息接口。

    应用使用这个库能够获取关于用户的电话服务。适合一些打电话的应用。如,VoIP(网络电话)应用,而且能够接受电话的全部通知。

    (CT)

  • 4.0 日历事件 _EventKit.framework_

    包含最常规的能够操作的音频和视频。不要直接使用这个框架。

    提供一个接口来訪问用户设备上的日历。(EK)

    • 获取已经存在的事件,和从用户的日历上获得事件提醒
    • 加入事件到用户日历上
    • 用户能够创建提醒事件。而且显示在提醒事件的应用上 + 配置日历事件的闹钟。包含这是闹钟的内容

      Important:反问用户的日历,而且提示数据须要得到用户的同意才干使用。

      应用必须处理用户的禁止訪问。应用也是鼓舞提供Info.plist上Keys描写叙述。訪问请求的需求。

  • 2.0 功能 _Foundation.framework_

    在Core Foundation库中的,这个库提供了很多基于OBJ-c基础类的特性。能够在Core Foundation库中找到描写叙述。(NS)

    • 集合数据类型(数组,组,和其它)
    • Bundles
    • 字符串String管理
    • 时间Date和Time管理
    • 原始数据快管理
    • 网络连接,网络流管理
    • 多线程,循环运算
    • 端口Port和socket连接
    • 网络
    • 正则匹配表达式
    • 缓存机制
  • 8.0 保健 HealthKit.framework

    一个全新的库,管理用户和健康相关的信息。在扩散型应用,能够追踪健康的设备,和保健信息下。用户非常难清楚他们是怎样做的。

    可是。这个库使得应用梗荣的分享保健的相关信息。信息来源于IOS设备,或者用户手动录入。用户保健信息保存在安全而又集中的位置。用户能够在保健应用上,查看到自己的全部保健信息。

    当你的应用支持这个库。你就能够訪问用户相关的保健信息。获得一些用户信息。而且不须要追踪保健的设备。

    信息的分享都是由用户来决定的。当你的应用能够获得这些数据的时候,你就能够注冊一个通知来获得信息变化,而且获得信息时间,能够微细的调控他。

    比如。你能够在应用中请求用户的血压,而且设置一个通知。关于血压高低的警告通知。

    (HK)

  • 7.0 JaveScript JavaScriptCore.framework

    提供了基于OBJ-c包装的很多JaveScript标准类。使用这个库能够測试JaveScript代码和解析Json数据。

    (JS)

  • 3.0 手机核心服务 MobileCoreServices.framework

    定义底层的类型,适用于UTIs标准定义(UT)

  • 7.0 多点连接 MultipeerConnectivity.framework

    提供搜索附件的设备和直接交互那些不是通过网络连接的设备。这个库能够简单的创建多点会话。支持传输可靠的有序数据和实时传输。在这个库下,你能够和附近的设备交互和无缝交换数据。

    这个库提供界面为扫描和管理网络的服务。

    应用能够整合MCBrowserViewController到界面中来显示一个列表下的设备让用户选择。

    或者,你也能够使用MCNearbyServiceBrowser类来查看和管理设备等。(MC)

  • 5.0 新闻 NewsstandKit.frameworkGuide

    提供一个阅读杂志和新闻的中心。

    公布者能够通过这个库创建应用开公布杂志,新闻到Newsstand上。Newsstand支持后台下载。在你開始下载后,系统会控制下载操作和完毕后通知用户。

    (NK)

  • 6.0 Passes PassKit.frameworkGuide

    Passbook应用提供给用户一个能够购买优惠劵,飞机票,其它票和商业打折卡的地方。替换以往的线下购买方式。用户如今能够在IOS设备下购买他们和与曾经一样的使用他们。这个库提供了OBJ-c接口把items整合到你的应用里面。你能够使用这个应用组合网络接口和文件格式来创建和管理你的公司Offers。

    通过你的公司的server来创建Passes。和通过用户的设备(via email,safairi。和应用)来交费用。这个Pass自身是个非常特殊的文件格式。在支付前就已经加密了。这个文件格的ID相关信息关于关于服务以至于用户能够知道这些服务是做什么。它同一时候能够拥有一个bar代码,或者其它信息以至于你能够使用他来验证或者退货和使用。(PK)

  • 4.0 高速预览 QuickLook.framework

    、在应用里,提供直接的接口预览文件内容。

    这个库是为从网络下载文件和位置源头的工作文件准备的。

    在获得文件之后,你使用库提供的viewcontroller来直接的显示这些文件内容。(QL)

  • 7.0 Safari服务 SafariServices.framework

    为程序提供加入URLs到用户的Safari的阅读列表里面。

    (SS)

  • 6.0 社会 Social.framework

    提供一个简单接口来訪问用户的社交媒体账号。

    这个库代替Twitter库,和添加支持其它的社交账号,包含facebook。新浪微博。和其它。

    应用使用这个库来改动状态。和账号头像。这个库和Account库一起工作,为用户提供一个简单的登录模式,和确定通过用户账号认证。

    (SL)

  • 3.0 支付 StoreKit.frameworkGuide

    支持支付内容和服务于IOS应用,如In-app Purchase。比如,你能够使用这个特性来同意用户在应用里解锁额外的内容。或者假设你是个游戏开发人员。你能够使用它来提供额外的游戏关卡。

    相同的。

    这个库管理着交易事物,通过用户而itunes商店的账号来处理支付请求和获得购买内容的信息。(SK)

  • 2.0 系统配置 SystemConfiguration.framework

    提供可达性接口。你能够使用它来决定设备的网络设置。

    你能够使用这个库来决定Wifi设置或者蜂窝网络下,能否够訪问特定的server。(SC)

  • 8.0 网络 WebKit.framework

    ([Core Services Layer][2])

    让应用显示HTML内容。除了显示HTML以外,你能够提供主要的改动,用能够替换文字,改动文档内容和属性,包含CSS。WebKit同一时候也支持在DOM级别的HTML文档下创建和改动内容。比如你能够使用一页的摘要链接列表。改动他们和替换他们显示的优先级。在一个网络的界面内。(WK)

上一篇:关于RabbitMQ分布式集群架构


下一篇:【树状数组区间修改单点查询】HDU 4031 Attack