Core Services 层

Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。

高阶特性

下面的部分描述一些比较常见特性,也许您正打算让您的应用程序支持这些特性。

块对象

iOS 4.0引入了块对象。块对象是C级别的构造,您可以在C或Objective-C代码中使用快对象。从本质上说,块对象本质上是一个匿名函数加上该函数的伴随数据。有些时候,其他语言也称块对象为 closure或者lambda。块对象非常适用于回调函数。如果您需要有很便捷的方法将执行代码和相关数据组合在一起,块对象也是很好的选择。

在 iOS系统中,块对象通常用于下述场合:

  • 作为委托或委托方法的替代品。

  • 作为回调函数的替代品。

  • 用于实现一次性操作的完成处理器。

  • 简化在群体所有子项上迭代执行某种任务的操作。

  • 配合分发队列。可用于执行异步任务。

如需了解块对象及其使用方式,请查看块对象简短实践指南 。如需进一步了解块对象, 请查看块对象编程论述 。

Grand Central Dispatch

iOS 4.0引入了 Grand Central Dispatch
(GCD),它是BSD级别的技术,可用于在应用程序内管理多个任务的执行。GCD技术将异步编程模型和高度优化内核结合在一起,可作为多线程的便捷(且更高效)替代。同时,它也为许多种底层任务(
例如读写文件描述符、实现定时器、监视信号和处理事件等)提供替代方案。

如需进一步了解在应用程序内使用GCD的方式,请查看并发编程指南 。如果需要了解特定GCD函数的信息,请查看Grand Central Dispatch (GCD)参考 。

应用程序内购买(In App Purchase)

iOS 3.0引入了应用程序内购买功能。通过该功能,您可以在应用程序内出售内容或服务。该功能使用Store
Kit框架来实现,它可以为使用iTunes账户进行的财务交易的处理提供基础支持,应用程序只需处理用户体验及待售内容或服务的展现。

如果需要进一步了解iOS如何支持应用程序内购买功能,请参考应用程序内购买编程指南 。如需进一步了解 Store Kit框架,请参考“Store
Kit框架”
 。

定位服务

应用程序可使用Core
Location框架提供的接口追踪用户位置。此框架利用当前可用的硬件无线电波(包括Wi-Fi、蜂窝无线或者GPS)定位用户的当前位置。应用程序可以对框架提供的信息进行裁剪,然后再将其发送给客户,
或是用于实现某些特定功能。举个例子,社交应用程序允许您找到附近其他应用程序用户,然后再与之进行通讯。

如需进一步了解如何使用定位服务,请阅读方位感知编程指南。如需进一步了解Core Locatio框架,请阅读“Core
Location框架 ”

SQLite

SQLite库允许开发者将一个轻量级SQL数据库嵌入到应用程序,而且开发者不需要运行独立的远程数据库服务器进程。在此之后,开发者可以在应用程序中创建本地数据库文件,管理文件中的表和记录虽然SQLite数据库出于通用目的而设计,但它还是针对数据库记录的快速访问做过优化。

用于访问SQLite库的头文件位于 <iOS_SDK>/usr/include/sqlite3.h
在该路径中, <iOS_SDK>是Xcode安装目录中目标SDK的路径。如果需要更多如何使用SQLite的信息,
请访问http://www.sqlite.org网站。

XML 支持

Foundation框架支持使用NSXMLParser 类从XML文档中解析元素,而libXML2库则为操作XML内容提供支持。 libXML2库是开源的,它可以让您快速地解析或写入任意的XML数据,也可将XML内容转化为HTML文件。

用于访问libXML2库的头文件位于 <iOS_SDK>/usr/include/libxml2/
在该路径中, <iOS_SDK>是Xcode安装目录中目标SDK的路径。如要更多libXML2的使用信息,
请访问 http://xmlsoft.org/index.htm 网站。

Core Services 框架

下述部分描述Core Services层的框架以及这些框架提供的服务。

Address Book 框架

Address
Book框架
 (AddressBook.framework)支持编程访问存储于用户设备中的联系人信息。如果应用程序使用到联系人信息,则可通过该框架访问并修改用户联系人数据库的记录。举个例子,通过使用该框架,聊天程序可以获取一个联系人列表,利用此列表初始化聊天会话,并在联系人视图显示列表的联系人。

如果需要进一步了解 Address Book框架的功能,请访问Address Book 框架参考 。

CFNetwork 框架

CFNetwork框架 (CFNetwork.framework)提供一组高性能基于C语言的接口,它们为使用网络协议提供面向对象抽象。通过这些抽象,您可以对协议栈进行更精细的控制,而且可以使用诸如
BSD socket这类底层结构。您也可以通过该框架简化诸如与FTP或HTTP服务器通讯以及DNS主机解析这类任务。下面列举一些可以使用
CFNetwork框架执行的任务:

  • 使用BSD sockets

  • 使用SSL或TLS创建加密连接

  • 解析DNS主机

  • 使用HTTP,校验HTTP以及HTTPS服务器。

  • 使用FTP服务器

  • 发布、解析并浏览 Bonjour服务。

CFNetwork理论及实现都以 BSD socket为基础。如需更多如何使用CFNetwork框架的信息, 请访问CFNetwork编程指南以及CFNetwork框架参考

Core Data 框架

iOS 3.0引入Core Data框架(CoreData.framework)。Core
Data框架
是一种管理模型-视图-控制器应用程序数据模型的技术,它适用于数据模型已经高度结构化的应用程序。通过此框架,您再也不需要通过编程定义数据结构,而是通过Xcode提供的图形工具构造一份代表数据模型的图表。在程序运行的时候,Core
Data框架就会创建并管理数据模型的实例,同时还对外提供数据模型访问接口。

通过Core Data管理应用程序的数据模型,可以极大程度减少需编写的代码数量。除此之外,Core Data还具有下述特征:

  • 将对象数据存储在SQLite数据库以获得性能优化。

  • 提供NSFetchedResultsController 类用于管理表视图的数据。

  • 管理undo/redo操作。

  • 属性值校验支持。

  • 支持对数据变化进行传播,并且不会改变对象间的关联。

  • 支持对数据进行归类,过滤,并支持对内存数据进行管理。

如果您正在开发新应用程序或打算对某个现有的程序进行大幅度更新,请考虑使用Core Data。如果需要了解如何在iOS应用程序中使用Core
Data,请参考iOS Core Data 教程 。如果需要进一步了解Core Data框架中的类,请参考Core Data框架参考 。

Core Foundation 框架

Core
Foundation框架
 (CoreFoundation.framework)
是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:

  • 群体数据类型 (数组、集合等)

  • 程序包

  • 字符串管理

  • 日期和时间管理

  • 原始数据块管理

  • 偏好管理

  • URL及数据流操作

  • 线程和RunLoop

  • 端口和soket通讯

Core
Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口。如果您将Foundation对象和Core
Foundation类型掺杂使用,则可利用两个框架之间的 “toll-free bridging”。所谓的Toll-free
bridging
是说您可以在某个框架的方法或函数同时使用Core Foundatio和Foundation
框架中的某些类型。很多数据类型支持这一特性,其中包括群体和字符串数据类型。每个框架的类和类型描述都会对某个对象是否为 toll-free
bridged,应和什么对象桥接进行说明。

如需进一步信息,请阅读Core Foundation 框架参考

Core Location 框架

Core
Location框架
 (CoreLocation.framework)可用于定位某个设备当前经纬度。它可以利用设备具备的硬件,通过附近的GPS、蜂窝基站或者WiFi信号等信息计算用户方位。Maps应用程序就是利用此功能在地图上显示用户当前位置。您可以将此技术结合到应用程序,以此向用户提供方位信息。例如,应用程序可根据用户当前位置搜索附近饭店、商店或其他设施

在iOS 3.0系统中,该框架开始支持访问iOS设备(具有相应硬件的设备)的方向信息。

在iOS 4.0系统中,该框架开始支持低能耗的方位监视服务,该服务利用蜂窝基站跟踪用户方位。

如需了解Core Location框架中的类,请参考Core Location 框架参考 。

Core Media 框架

iOS 4.0引入了Core Media框架 (CoreMedia.framework)。此框架提供AV
Foundation框架使用的底层媒体类型。只有少数需要对音频或视频创建及展示进行精确控制的应用程序才会涉及该框架,其他大部分应用程序应该都用不上。

如需进一步了解此框架的函数和数据类型,请阅读Core Media 框架参考

Core Telephony 框架

iOS 4.0引入了Core
Telephony框架(CoreTelephony.framework)。此框架为访问具有蜂窝无线的设备上的电话信息提供接口,应用程序可通过它获取用户蜂窝无线服务的提供商信息。如果应用程序对于电话呼叫感兴趣,也可以在相应事件发生时得到通知。

如需进一步了解如何使用该框架的类和方法,请阅读Core Telephony框架参考

Event Kit 框架

iOS 4.0引入了 Event Kit框架
(EventKit.framework)。此框架为访问用户设备的日历事件提供接口。您可以通过该框架访问用户日历中现有事件,可以增加新事件。日历事件可包含闹铃,而且可以配置闹铃激活规则。

如需进一步了解如何使用该框架的类和方法,请阅读Event Kit 框架参考 ,也可参考Event
Kit UI 框架

Foundation 框架

Foundation框架 (Foundation.framework)为
Core Foundation框架的许多功能提供Objective-C封装。您可以参考Core
Foundation框架
了解前面对Core Foundation框架的描述。 Foundation框架为下述功能提供支持:

  • 群体数据类型 (数组、集合等)

  • 程序包

  • 字符串管理

  • 日期和时间管理

  • 原始数据块管理

  • 偏好管理

  • URL及数据流操作

  • 线程和RunLoop

  • Bonjour

  • 通讯端口管理

  • 国际化

  • 正则表达式匹配

  • 缓存支持

如需进一步了解如何使用该框架的类和方法,请阅读Foundation框架参考

Mobile Core Services 框架

iOS 3.0引入了Mobile Core
Services框架
 (MobileCoreServices.framework)。此框架定义统一类型标识符
(UTIs)使用的底层类型。

如需进一步了解此框架定义的类型,请查看统一类型标识符参考 。

Quick Look 框架

iOS 4.0引入Quick
Look框架(QuickLook.framework),应用程序可以用过该框架预览无法直接支持查看的文件内容。如果应用程序从网络下载文件或者需处理来源未知的文件,则非常适合使用此框架。因为应用程序只要在获得文件后,调用框架提供的视图控制器就可以直接在界面中显示文件的内容。

如需进一步了解该框架的类和方法,请参考Quick Look框架参考

Store Kit 框架

iOS 3.0引入Store
Kit 
框架(StoreKit.framework),此框架为iOS应用程序内购买内容或服务提供支持。例如,开发者可以利用此框架允许用户解锁应用程序的额外功能。或者假设您是一名游戏开发人员,则可使用此特性向玩家出售附加游戏级别。在上述的两种情况中,Store
Kit 框架会处于交易过程中和财务相关的事件,包括处理用户通过 iTunes Store账号发出的支付请求并且向应用程序提供交易相关信息。

Store
Kit框架主要关注交易过程中和财务相关的事务,目的是为了确保交易安全准确。应用程序需要处理交易事物的其他因素,包括购买界面和下载(或者解锁)恰当的内容。通过这种任务划分方式,您就拥有购买内容的控制权,可以决定希望展示给用户的购买界面以及何时向用户展示这些界面,同时也可以决定和应用程序最匹配的交付机制。

如需进一步了解Store Kit框架的使用方式,请查看应用程序内购买编程指南以及Store Kit 框架参考 。

System Configuration 框架

System Configuration框架(SystemConfiguration.framework)
可用于确定设备的网络配置。您可以使用该框架判断Wi-Fi或者蜂窝连接是否正在使用中,也可以用于判断某个主机服务是否可以使用。

如需进一步了解此框架提供的接口,请查看System Configuration框架参考。如需通过此框架获取网络信息的示例,请访问 Reachability样例工程。

时间: 2024-10-22 18:26:04

Core Services 层的相关文章

iOS框架介绍(五)---Core Services 层(转)

目录 Core Services 层 高阶特性 块对象 Grand Central Dispatch 应用程序内购买In App Purchase 定位服务 SQLite XML 支持 Core Services 框架 Address Book 框架 CFNetwork 框架 Core Data 框架 Core Foundation 框架 Core Location 框架 Core Media 框架 Core Telephony 框架 Event Kit 框架 Foundation 框架 Mob

[IOS/翻译]Core Services Layer

本文是本人自己辛苦翻译的,请转载的朋友注明,翻译于Z.MJun的CSDN的博客 http://blog.csdn.net/Zheng_Paul,感谢! 翻译于2015年10月4日 Core Services Layer 这个核心服务层包含应用的基本系统服务.关键这些服务是在核心功能和核心功能库之间,所有的应用都必须使用这些基础类型.这个层同时包含个别的技术,例如本地,iCloud,公共媒体和网络. 高级别的特性 接下来的部分描述的是一些在核心服务层下高级别的特性 点对点服务(Peer-to-Pe

Spring core resourc层结构体系及JDK与Spring对classpath中资源的获取方式及结果对比

1. Spring core resourc层结构体系 1.1. Resource相关结构体系 1.2. ResourceLoader相关体系 2. JDK与Spring对classpath中资源的获取方式及结果对比

Core OS 层

Core OS层的底层功能是很多其他技术的构建基础.通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架.但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架. Accelerate 框架 iOS 4.0引入了Accelerate框架(Accelerate.framework).该框架的接口可用于执行数学.大数字以及DSP运算.和开发者个人编写的库相比,该框架的优点在于它根据现存的各种iOS设备的硬件配置进行过优化.因此,您只需一次编码就可确保它在所有设备高效运行.

iOS框架介绍(六)---Core OS 层(转)

目录 Core OS 层 Accelerate 框架 External Accessory 框架 Security 框架 System Core OS 层 Core OS层的底层功能是很多其他技术的构建基础.通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架.但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架. Accelerate 框架 iOS 4.0引入了Accelerate框架(Accelerate.framework).该框架的接口可用于执行数学.大数字

多媒体层预览(Media Layer OverView)

音频模块位于多媒体层里.多媒体层包含了图形.音频.视频三种技术.这三种技术会给你带来声觉.视觉上的良好体验. 来看看ios的结构体系以及媒体层上的内容:                                 我们可以看出,媒体层位于cocoaTouch与Core Services 层之间并且媒体层主要包含图形.音频.视频以及Air Play四个部分,我们还能了解媒体层里使用到的框架(framework).这些框架构筑建了媒体层,好比搭建一栋高楼里的钢筋.沙石等等,这些框架也正是我们要学

iOS层次架构

iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer). 1.Core OS层-----包含核心部分.文件系统.网络基础.安全特性.能量管理和一些设备驱动,还有一些系统级别的API. 2.Core Services层----提供核心服务,例如字符串处理函数.集合管理.网络管理.URL处理工具.联系人维护.偏好设置等. 3.Media层----

iOS iPhone SDK 包含哪些东西?

iPhone SDK 包含哪些东西? 第一部分: 在使用Intel芯片的Macintosh计算机开发iOS应用程序所需的全部接口.工具以及资源全都包含于iPhone SDK. 苹果公司将大部分系统接口发布在框架这种特殊的数据包.一个框架就是一个目录,它包含一个动态共享库以及使用这个库所需的资源(例如头文件.图像以 及帮助应用程序等).如果要使用某个框架,则需要将其链接到应用程序工程,这一点和使用其他共享库相似.另外,您还需要告知开发工具何处可以找到框架头文 件以及其他资源. 除了使用框架,苹果公

iOS ---Swift学习与复习

swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swift http://stackoverflow.com http://weibo.com/oldcoder 43个优秀的Swift开源项目推荐 https://developer.apple.com/swift/blog/ http://code.cocoachina.com http://swif