核心服务层
核心服务层包含应用程序的基本系统服务。这些服务中的关键是Core Foundation和Foundation框架,它们定义了所有应用程序使用的基本类型。该层还包含各种技术,以支持位置,iCloud,社交媒体和网络等功能。
高级功能
以下部分描述了核心服务层中可用的一些高级功能。
对等服务
Multiper连接框架通过蓝牙提供对等连接。您可以使用对等连接来启动与附近设备的通信会话。虽然对等连接主要用于游戏,但您也可以在其他类型的应用中使用此功能。
有关如何在应用程序中使用点对点连接功能的信息,请参阅Multiper Connectivity Framework Reference。
iCloud存储
iCloud存储可让您的应用将用户文档和数据写入中央位置。然后,用户可以从其所有计算机和iOS设备访问这些项目。使用iCloud使用户的文档无处不在意味着用户可以从任何设备查看或编辑这些文档,而无需明确同步或传输文件。将文档存储在用户的iCloud帐户中也为用户提供了一层安全保障。即使用户丢失设备,如果设备上的文档位于iCloud存储设备中也不会丢失。
应用程序有两种方式可以利用iCloud存储,每种都具有不同的预期用途:
iCloud文件存储。使用此功能将用户文档和数据存储在用户的iCloud帐户中。
iCloud键值数据存储。使用此功能可在应用程序的实例之间共享少量数据。
CloudKit存储。当您想要创建公开分享的内容或当您想要自己管理数据传输时,请使用此功能。
大多数应用程序使用iCloud文档存储来从用户的iCloud帐户共享文档。 (这是用户在想到iCloud存储时会想到的功能。)用户关心文档是否跨设备共享,以及是否可以从给定的设备查看和管理这些文档。相比之下,iCloud键值数据存储不是用户看到的。相反,它是您的应用程序与其他实例共享非常少量的数据(几千字节)的一种方式。应用程序应该使用此功能来存储非关键应用程序数据,例如首选项,而不是重要的应用程序数据。
有关如何将iCloud支持并入应用程序的概述,请参阅iCloud设计指南。
块对象
块对象是一个C级语言结构,可以并入到C和Objective-C代码中。块对象本质上是一个匿名函数,并且与该函数一起使用的数据,其他语言有时称为闭包或lambda。块特别适用于回调,或者您需要一种轻松组合要执行的代码和相关数据的方法。
在iOS中,在以下情况下通常使用块:
代替代表和委托方法
作为回调函数的替代
实施完成处理程序进行一次性操作
以便于对集合中的所有项目执行任务
与调度队列一起执行异步任务
有关阻止对象及其用途的介绍,请参阅“块的实用指南”。有关块的更多信息,请参阅块编程主题。
数据保护
数据保护允许使用敏感用户数据的应用程序利用某些设备上可用的内置加密功能。当您的应用程序将特定文件指定为受保护的文件时,系统会以加密格式将该文件存储在磁盘上。当设备被锁定时,您的应用程序和任何潜在的入侵者都无法访问该文件的内容。但是,当用户解锁设备时,会创建一个解密密钥来允许您的应用访问该文件。其他级别的数据保护也可供您使用。
实施数据保护需要您考虑如何创建和管理要保护的数据。应用程序必须设计为在创建时保护数据,并在用户锁定和解锁设备时准备访问更改。
有关如何为应用程序的文件添加数据保护的更多信息,请参阅iOS的“应用程序编程指南”。
文件共享支持
文件共享支持可让应用程序在iTunes 9.1及更高版本中提供用户数据文件。声明支持文件共享的应用程序使其/ Documents目录的内容可供用户使用。然后,用户可以根据需要从iTunes中移出文件。此功能不允许您的应用与同一设备上的其他应用共享文件;该行为需要粘贴板或文档交互控制器对象。
要为您的应用启用文件共享,请执行以下操作:
将UIFileSharingEnabled键添加到应用程序的Info.plist文件中,并将该键的值设置为YES。
将您要分享的任何文件放在应用程序的Documents目录中。
当设备插入用户的计算机时,iTunes会在所选设备的应用程序选项卡中显示文件共享部分。
用户可以将文件添加到此目录或将文件移动到桌面。
支持文件共享的应用程序应该能够识别何时将文件添加到Documents目录中并进行适当的响应。例如,您的应用程序可能会从其界面使任何新文件的内容可用。您不应该向用户显示此目录中的文件列表,并要求他们决定如何处理这些文件。
有关UIFileSharingEnabled键的其他信息,请参阅信息属性列表键参考。
Grand Central Dispatch
Grand Central Dispatch(GCD)是您用于管理应用程序中任务执行的BSD级技术。 GCD将异步编程模型与高度优化的内核相结合,为线程提供了一种方便(且更有效率)的替代方案。 GCD还为许多类型的低级任务提供方便的替代方案,例如读取和写入文件描述符,实现定时器,监视信号和处理事件。
有关如何在应用程序中使用GCD的更多信息,请参阅并发编程指南。有关特定GCD功能的信息,请参阅Grand Central Dispatch(GCD)参考。
应用内购买
应用内购买功能可让您在应用程式内销售特定于应用的内容和服务以及iTunes内容。该功能使用StoreKit框架实现,该框架提供使用用户的iTunes帐户处理金融交易所需的基础设施。您的应用程序可处理整体用户体验以及可用于购买的内容或服务的演示。对于可下载的内容,您可以自己托管内容,也可以让Apple的服务器为您托管内容。
有关支持应用内购买的更多信息,请参阅应用内购买编程指南。有关StoreKit框架的其他信息,请参阅Store Kit Framework。
SQLite
SQLite库允许您将轻量级SQL数据库嵌入到应用程序中,而无需运行单独的远程数据库服务器进程。从您的应用程序,您可以创建本地数据库文件并管理这些文件中的表和记录。该库旨在用于通用目的,但仍然进行了优化,可以快速访问数据库记录。
用于访问SQLite库的头文件位于<IOS_SDK> /usr/include/sqlite3.h中,其中<iOS_SDK>是Xcode安装目录中目标SDK的路径。有关使用SQLite的更多信息,请参阅SQLite软件库。
XML支持
Foundation框架提供了NSXMLParser类,用于从XML文档中检索元素。 libxml2库提供了对操作XML内容的额外支持。这个开源库可以让您快速解析或写入任意的XML数据,并将XML内容转换为HTML。
用于访问libxml2库的头文件位于<IOS_SDK> / usr / include / libxml2 /目录中,其中<iOS_SDK>是Xcode安装目录中目标SDK的路径。有关使用libxml2的更多信息,请参阅libxml2的文档。
核心服务框架
以下部分将介绍核心服务层的框架及其提供的服务。
帐户框架
帐户框架(Accounts.framework)为某些用户帐户提供单一登录模型。单点登录可以通过消除对多个帐户单独提示用户的需求来改善用户体验。它还通过管理您的应用程序的帐户授权流程,简化了开发模式。您将此框架与社会框架结合使用。
有关帐户框架的类的更多信息,请参阅帐户框架参考。
地址簿框架
地址簿框架(AddressBook.framework)提供对用户联系人数据库的编程访问。如果您的应用程序使用联系信息,您可以使用此框架来访问和修改该信息。例如,聊天程序可能会使用此框架来检索可能的联系人的列表,以启动聊天会话并在自定义视图中显示这些联系人。
重要提示:访问用户的联系人数据需要用户的明确许可。因此,应用程序必须准备好让用户拒绝访问。还鼓励应用程序提供Info.plist键描述需要访问的原因。
有关地址簿框架中功能的信息,请参阅iOS的通讯簿框架参考。
广告支持框架
广告支持框架(AdSupport.framework)提供对应用程序可用于广告目的的标识符的访问。该框架还提供了一个标志,指示用户是否已选择停用广告跟踪。在尝试访问广告标识符之前,应用程序需要阅读并遵守选择停用标志。
有关此框架的更多信息,请参阅广告支持框架参考。
CFNetwork框架
CFNetwork框架(CFNetwork.framework)是一组高性能的基于C的接口,使用面向对象的抽象来处理网络协议。这些抽象可以让您对协议栈进行详细的控制,并使其易于使用诸如BSD套接字之类的低级结构。您可以使用此框架来简化与FTP和HTTP服务器通信或解析DNS主机等任务。使用CFNetwork框架,您可以:
使用BSD套接字
使用SSL或TLS创建加密连接
解析DNS主机
使用HTTP服务器,认证HTTP服务器和HTTPS服务器
使用FTP服务器
发布,解决和浏览Bonjour服务
CFNetwork在物理和理论上均基于BSD套接字。有关如何使用CFNetwork的信息,请参阅“CFNetwork编程指南”和“CFNetwork框架参考”。
CloudKit框架
CloudKit(CloudKit.framework)为您的应用和iCloud之间移动数据提供了渠道。与数据传输透明化的其他iCloud技术不同,CloudKit可以控制何时发生传输。您可以使用CloudKit来管理所有类型的数据。
直接使用CloudKit的应用程序可以将数据存储在所有用户共享的存储库中。该公共存储库与应用程序本身相关,即使在没有注册iCloud帐户的设备上也可以使用。作为应用程序开发人员,您可以直接管理此容器中的数据,并查看用户通过CloudKit仪表板进行的任何更改。
有关此框架的类的更多信息,请参阅Cloud Kit框架参考。
核心数据框架
Core Data框架(CoreData.framework)是一种用于管理Model-View-Controller应用程序的数据模型的技术。核心数据旨在用于数据模型已经高度结构化的应用程序中。您不用以编程方式定义数据结构,而是使用Xcode中的图形工具来构建表示数据模型的模式。在运行时,通过Core Data框架创建,管理和提供数据模型实体的实例。
通过为您管理应用程序的数据模型,Core Data可显着减少为应用程序编写的代码量。 Core Data还提供以下功能:
将对象数据存储在SQLite数据库中以实现最佳性能
NSFetchedResultsController类用于管理表视图的结果
对基本文本编辑以外的撤销/重做进行管理
支持验证属性值
支持传播更改并确保对象之间的关系保持一致
支持对内存中的数据进行分组,过滤和组织
如果您开始开发新的应用程序或正在计划对现有应用程序进行重大更新,则应考虑使用Core Data。有关如何在iOS应用程序中使用Core Data的示例,请参阅iOS的Core Data Tutorial。有关核心数据框架类的更多信息,请参阅核心数据框架参考。
核心基础框架
Core Foundation框架(CoreFoundation.framework)是一组基于C的界面,为iOS应用程序提供基本的数据管理和服务功能。此框架包括对以下内容的支持:
集合数据类型(数组,集合等)
捆绑
字符串管理
日期和时间管理
原始数据块管理
偏好管理
URL和流操作
线程和运行循环
端口和套接字通信
Core Foundation框架与Foundation框架密切相关,它为相同的基本特性提供了Objective-C接口。当您需要混合Foundation对象和Core Foundation类型时,您可以利用两个框架之间存在的“免费桥接”。免费桥接意味着您可以在两个框架的方法和功能中互换使用一些Core Foundation和Foundation类型。此支持可用于许多数据类型,包括集合和字符串数据类型。每个框架的类和类型描述都说明一个对象是否免费桥接,如果是,则连接到什么对象。
有关此框架的更多信息,请参阅Core Foundation Framework Reference。
核心位置框架
核心位置框架(CoreLocation.framework)为应用程序提供位置和标题信息。对于位置信息,框架使用车载GPS,小区或Wi-Fi无线电来查找用户当前的经度和纬度。您可以将此技术纳入您自己的应用程序,以向用户提供基于位置的信息。例如,您可能有一项服务可以搜索附近的餐馆,商店或设施,并将该搜索设置在用户当前位置。核心位置还提供以下功能:
在包含磁力计的iOS设备上访问基于指南针的标题信息
支持基于地理位置或蓝牙信标的区域监控
支持使用单元塔的低功耗定位监控
与MapKit协作,以提高特定情况下的位置数据质量,如驾驶时
有关如何使用Core Location来收集位置和标题信息的信息,请参阅位置和地图编程指南和核心位置框架参考。
核心媒体框架
Core Media框架(CoreMedia.framework)提供了AV Foundation框架使用的低级媒体类型。大多数应用程序从来不需要使用这个框架,但是为那些需要更精确地控制音频和视频内容的创建和呈现的开发人员提供。
有关此框架的功能和数据类型的更多信息,请参阅Core Media Framework Reference。
核心运动框架
Core Motion框架(CoreMotion.framework)提供了一组接口,用于访问设备上可用的所有基于运动的数据。该框架支持使用新的基于块的接口来访问原始和加工的加速度计数据。对于具有内置陀螺仪的设备,您可以检索原始陀螺仪数据以及反映设备的姿态和旋转速度的处理数据。您可以将加速度计和基于陀螺仪的数据用于游戏或使用运动作为输入的其他应用程序,或作为增强整体用户体验的方式。对于具有步进计数硬件的设备,您可以访问该数据并使用它来跟踪与健身有关的活动。
有关此框架的类和方法的更多信息,请参阅Core Motion Framework Reference。
核心电话框架
核心电话框架(CoreTelephony.framework)提供了接口,用于与具有蜂窝无线电设备的基于手机的信息进行交互。应用程序可以使用此框架来获取有关用户蜂窝服务提供商的信息。当这些事件发生时,也可以通知对蜂窝通话事件感兴趣的应用(如VoIP应用)。
有关使用此框架的类和方法的更多信息,请参阅核心电话框架参考。
EventKit框架
EventKit框架(EventKit.framework)提供用于访问用户设备上的日历事件的界面。您可以使用此框架执行以下操作:
从用户的日历中获取现有的事件和提醒
将事件添加到用户的日历
为用户创建提醒,并将其显示在“提醒”应用中
为日历事件配置警报,包括触发这些警报的设置规则
重要提示:访问用户的日历和提醒数据需要用户的明确许可。因此,应用程序必须准备好让用户拒绝访问。还鼓励应用程序提供Info.plist键描述需要访问的原因。
有关此框架的类和方法的更多信息,请参阅事件套件框架参考。另请参见事件工具包UI框架。
基础框架
基础框架(Foundation.framework)为Core Foundation框架中的许多功能提供了Objective-C包装,这在Core Foundation Framework中有所描述。基础框架支持以下功能:
集合数据类型(数组,集合等)
捆绑
字符串管理
日期和时间管理
原始数据块管理
偏好管理
URL和流操作
线程和运行循环
你好
通讯口管理
国际化
正则表达式匹配
缓存支持
有关Foundation框架类的信息,请参阅Foundation Framework Reference。
HealthKit框架
HealthKit(HealthKit.framework)是管理用户健康相关信息的新框架。随着用于跟踪健康和健身信息的应用程序和设备的激增,用户很难清楚地了解他们的工作。 HealthKit可让应用程序轻松分享健康相关信息,无论该信息来自连接到iOS设备的设备,还是用户手动输入。用户的健康信息存储在集中和安全的位置。然后,用户可以看到Health应用程序中显示的所有数据。
当您的应用程序实现对HealthKit的支持时,它可以访问用户的健康相关信息,并可以提供有关用户的信息,而无需实施对特定健身跟踪设备的支持。用户决定应该与应用程序共享哪些数据。一旦数据与您的应用程序共享,您的应用程序可以注册以在数据更改时收到通知;您的应用程式通知时,您可以进行细致的控制。例如,您可以要求在用户服用血压时通知您的应用,或者仅当测量显示用户的血压达到特定阅读时才会收到通知。
有关此框架的接口的更多信息,请参阅“HealthKit框架参考”。
HomeKit框架
HomeKit(HomeKit.framework)是用于在用户家中与连接的设备进行通信和控制的新框架。正在为家庭引入的新设备提供更多的连接和更好的用户体验。 HomeKit提供了与这些设备通信的标准化方式。
您的应用程序可以使用HomeKit与用户在家中的设备进行通信。使用您的应用程序,用户可以在家中发现设备并对其进行配置。他们还可以创建控制这些设备的操作。用户可以将操作分组在一起,并使用Siri触发它们。创建配置后,用户可以邀请其他人分享对其的访问权限。例如,用户可能暂时提供访问房屋访客的权限。
使用HomeKit配件模拟器测试您的HomeKit应用程序与设备的通信。
有关此框架的接口的更多信息,请参阅Home Kit框架参考。
JavaScript核心框架
JavaScript Core框架(JavaScriptCore.framework)为许多标准JavaScript对象提供了Objective-C包装类。使用此框架来评估JavaScript代码并解析JSON数据。
有关此框架的类的信息,请参阅头文件。
移动核心服务框架
移动核心服务框架(MobileCoreServices.framework)定义了统一类型标识符(UTI)中使用的低级类型。
有关此框架定义的类型的更多信息,请参阅统一类型标识符参考。
多层连接框架
Multipeer连接框架(MultipeerConnectivity.framework)支持附近设备的发现以及与这些设备的直接通信,而无需Internet连接。该框架可以轻松创建多段会话,并支持可靠的按顺序数据传输和实时数据传输。通过这个框架,您的应用程序可以与附近的设备进行通信并无缝交换数据。
该框架提供用于发现和管理网络服务的基于程序设计和基于UI的选项。应用程序可以将MCBrowserViewController类集成到其UI中,以显示用户可供选择的对等设备列表。或者,您可以使用MCNearbyServiceBrowser类以编程方式查找和管理对等设备。
有关此框架的接口的更多信息,请参阅Multipeer Connectivity Framework Reference。
NewsstandKit框架
报亭应用程序为用户阅读杂志和报纸提供了一个中心位置。想通过报亭传送杂志和报纸内容的出版商可以使用NewsstandKit框架(NewsstandKit.framework)创建自己的iOS应用程序,从而可以启动新的杂志和报纸问题的后台下载。开始下载后,系统会处理下载操作,并在新内容可用时通知您的应用程序。
有关用于管理报亭下载的类的信息,请参阅报亭套件框架参考。有关如何使用推送通知通知您的应用程序的信息,请参阅本地和远程通知编程指南。
PassKit框架
“存折”应用程序为用户提供了存储优惠券,登机牌,活动券和企业折扣卡的地方。用户现在可以将它们存储在iOS设备上,而不是使用与之前相同的物理表示。 PassKit框架(PassKit.framework)提供了将这些项目的支持集成到应用程序中所需的Objective-C接口。您可以将此框架与Web界面和文件格式信息相结合,以创建和管理您公司提供的通行证。
通行证由您公司的网络服务创建,并通过电子邮件,Safari或您的自定义应用程序发送到用户的设备。传递本身,使用特殊的文件格式,在交付之前是加密签名的。文件格式标识有关正在提供的服务的相关信息,以便用户知道该服务是什么。它还可能包含一个条形码或其他信息,然后您可以使用它们来验证该卡,以便可以兑换或使用该卡。
有关PassKit的详细信息以及如何在应用程序中添加支持的信息,请参阅“电子钱包开发人员指南”。
快速查看框架
Quick Look框架(QuickLook.framework)提供了一个直接的界面,用于预览应用程序不支持的文件内容。此框架主要面向从网络下载文件或以其他方式处理来自未知来源的文件的应用程序。获取该文件后,您可以使用此框架提供的视图控制器直接在用户界面中显示该文件的内容。
有关此框架的类和方法的更多信息,请参阅iOS的Quick Look框架参考。
Safari服务框架
Safari服务框架(SafariServices.framework)提供支持以编程方式将URL添加到用户的Safari阅读列表。有关此框架提供的类的信息,请参阅框架头文件。
社交框架
社交框架(Social.framework)为访问用户的社交媒体帐户提供了一个简单的界面。该框架取代了Twitter框架,并增加了对其他社交账户的支持,包括Facebook,新浪微博等。应用程序可以使用此框架将状态更新和图像发布到用户的帐户。此框架与“帐户”框架配合使用,为用户提供单一登录模式,并确保对用户帐户的访问权限被批准。
有关社会框架的更多信息,请参阅社会框架参考。
StoreKit框架
StoreKit框架(StoreKit.framework)为您的iOS应用程序中的内容和服务的购买提供了支持,这个功能称为应用内购买。例如,您可以使用此功能来允许用户解锁其他应用功能。或者如果您是游戏开发者,您可以使用它来提供额外的游戏级别。在这两种情况下,StoreKit框架处理交易的财务方面,通过用户的iTunes Store帐户处理付款请求,并向应用程序提供有关购买的信息。
StoreKit专注于交易的财务方面,确保交易安全正确地进行。您的应用程序处理交易的其他方面,包括介绍采购界面和下载(或解锁)相应的内容。这种分工可以控制用户购买内容的体验。您决定要向用户呈现什么样的采购界面,何时这样做。您还决定最适合您的应用的传送机制。
有关如何使用StoreKit框架的信息,请参阅应用内购买编程指南和存储套件框架参考。
系统配置框架
系统配置框架(SystemConfiguration.framework)提供可达性接口,可用于确定设备的网络配置。您可以使用此框架来确定Wi-Fi或蜂窝连接是否正在使用以及是否可以访问特定的主机服务器。
有关此框架的接口的更多信息,请参阅系统配置框架参考。有关如何使用此框架获取网络信息的示例,请参阅可访问性示例代码项目。
WebKit框架
WebKit框架(WebKit.framework)可让您在应用程序中显示HTML内容。除了显示HTML之外,您还可以提供基本的编辑支持,以便用户可以替换文本和操作文档文本和属性,包括CSS属性。 WebKit还支持在HTML文档的DOM级别创建和编辑内容。例如,您可以在网页视图中显示文档之前提取页面上的链接列表,修改它们并替换它们。
有关此框架的接口的信息,请参阅WebKit框架参考。
核心OS层
Core OS层包含大多数其他技术构建的低级功能。即使您不直接在应用程序中使用这些技术,也可能被其他框架所使用。在需要明确处理安全性或与外部硬件配件通信的情况下,您可以使用此层中的框架。
加速框架
Accelerate框架(Accelerate.framework)包含用于执行数字信号处理(DSP),线性代数和图像处理计算的接口。使用此框架优于编写自己的这些界面版本的优点是针对iOS设备中存在的所有硬件配置进行了优化。因此,您可以编写代码一次,并确保它能在所有设备上高效运行。
有关Accelerate框架的功能的更多信息,请参阅加速框架参考。
核心蓝牙框架
核心蓝牙框架(CoreBluetooth.framework)允许开发人员与蓝牙低功耗(LE)配件进行专门交互。该框架的Objective-C接口允许您执行以下操作:
扫描蓝牙配件,并连接并断开与您找到的配件
从您的应用程序提供服务,将iOS设备转换为其他蓝牙设备的外设
从iOS设备广播iBeacon信息
保留蓝牙连接的状态,并在应用程序启动后恢复这些连接
通知蓝牙外设可用性的更改
有关使用核心蓝牙框架的更多信息,请参阅核心蓝牙编程指南和核心蓝牙框架参考。
外部配件框架
外部配件框架(ExternalAccessory.framework)支持与连接到基于iOS设备的硬件配件进行通信。配件可以通过设备的30针基座连接器或使用蓝牙无线连接。外部附件框架提供了一种方式来获取有关每个可用附件的信息并启动通信会话。之后,您可以使用其支持的任何命令直接操作附件。
有关如何使用此框架的更多信息,请参阅外部附件编程主题。有关开发基于iOS设备的配件的信息,请访问Apple Developer网站。
通用安全服务框架
通用安全服务框架(GSS.framework)为iOS应用程序提供了一组标准的安全相关服务。该框架的基本界面在IETF RFC 2743和RFC 4401中进行了规定。除了提供标准接口之外,iOS还包含一些补充,用于管理未由标准指定但是许多应用程序需要的凭据。
有关GSS框架接口的信息,请参阅头文件。
本地认证框架
本地认证框架(LocalAuthentication.framework)允许您使用Touch ID来验证用户。某些应用程序可能需要确保访问其所有内容,而其他应用程序可能需要确保某些信息或选项。在这两种情况下,您可以要求用户进行身份验证。使用此框架向用户显示具有应用程序指定原因的警报,为什么用户正在进行身份验证。当您的应用程序获得回复时,它可以根据用户是否能够成功进行身份验证进行反应。
有关此框架的接口的更多信息,请参阅本地身份验证框架参考。
网络扩展框架
网络扩展框架(NetworkExtension.framework)提供对配置和控制虚拟专用网(VPN)隧道的支持。使用此框架创建VPN配置。然后,您可以手动启动VPN隧道,或提供按需规则来启动VPN隧道以响应特定事件。
有关此框架的接口的更多信息,请参阅头文件。
安全框架
除了内置的安全功能外,iOS还提供了一个明确的安全框架(Security.framework),您可以使用它来保证应用程序管理的数据的安全性。此框架提供用于管理证书,公钥和私钥以及信任策略的接口。它支持生成加密安全的伪随机数。它还支持在钥匙串中存储证书和密钥,这是敏感用户数据的安全存储库。
Common Crypto库为对称加密,基于散列的消息认证码(HMAC)和摘要提供了额外的支持。摘要功能提供了与OpenSSL库中基本兼容的功能,这在iOS中不可用。
您可以在创建的多个应用程序之间共享钥匙串项。共享项目使同一套件中的应用程序更容易平滑地进行互操作。例如,您可以使用此功能来共享用户密码或其他可能要求您从每个应用程序分别提示用户的其他元素。要在应用程序之间共享数据,您必须使用适当的权限配置每个应用的Xcode项目。
有关与安全框架相关的功能和功能的信息,请参阅安全框架参考。有关如何访问钥匙串的信息,请参阅钥匙串服务编程指南。有关在Xcode项目中设置权利的信息,请参阅应用程序分发指南中的添加功能。有关您可以配置的权利的信息,请参阅Keychain服务参考中SecItemAdd函数的说明。
系统
系统级别包括操作系统的内核环境,驱动程序和低级UNIX界面。基于Mach的内核本身负责操作系统的各个方面。它管理虚拟内存系统,线程,文件系统,网络和进程间通信。该层的驱动程序还提供可用硬件和系统框架之间的接口。出于安全考虑,访问内核和驱动程序仅限于一系列有限的系统框架和应用程序。
iOS提供了一组用于访问操作系统的许多低级功能的接口。您的应用程序通过LibSystem库访问这些功能。接口基于C,并提供以下支持:
并发(POSIX线程和大中央调度)
网络(BSD套接字)
文件系统访问
标准I / O
Bonjour和DNS服务
区域信息
内存分配
数学计算
许多Core OS技术的头文件位于<IOS_SDK> / usr / include /目录中,其中<iOS_SDK>是Xcode安装目录中目标SDK的路径。有关与这些技术相关的功能的信息,请参阅“iOS手册页”。
64位支持
iOS最初被设计为支持使用32位架构的设备上的二进制文件。然而,在iOS 7中,为64位架构的编译,链接和调试二进制文件提供了支持。所有系统库和框架都是64位准备就绪,这意味着它们可以在32位和64位应用程序中使用。当为64位运行时编译时,由于64位模式下可用的额外处理器资源,应用程序可能运行速度更快。
iOS使用OS X和其他64位UNIX系统使用的LP64模型,这意味着移植代码时更少的头痛。有关iOS 64位运行时的信息以及如何编写64位应用程序,请参阅适用于Cocoa Touch的64位转换指南。
iOS框架
本附录包含有关iOS框架的信息。 这些框架提供了为平台编写软件所需的界面。 在适用的情况下,本附录中的表列出了框架的类,方法,函数,类型或常量使用的任何关键前缀。 避免在您自己的代码中使用任何指定的前缀。
设备框架
表A-1描述了基于iOS设备的框架。 您可以在<Xcode.app> Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / <iOS_SDK> / System / Library / Frameworks目录中找到这些框架,其中<Xcode.app>是您的Xcode应用程序的路径 而<iOS_SDK>是您所针对的特定SDK版本。 “第一个可用”列列出了框架首次出现的iOS版本。
表A-1设备框架
名称
首先可用
前缀
描述
Accelerate.framework
4
cblas,vDSP
包含加速数学和DSP功能。请参阅加速框架。
Accounts.framework
5
AC
包含用于管理对用户系统帐户的访问的界面。见帐户框架。
AddressBook.framework
2.0
AB
包含用于直接访问用户联系人数据库的功能。请参阅通讯簿框架。
AddressBookUI.framework
2.0
AB
包含用于显示系统定义的人员选择器和编辑器界面的类。请参阅通讯录UI框架。
AdSupport.framework程式
6
如
包含收集分析的课程。请参阅广告支持框架。
AssetsLibrary.framework
4
AL
包含访问用户照片和视频的课程。参见资产库框架。
AudioToolbox.framework
2.0
AU,Audio
包含用于处理音频流数据和播放和录制音频的接口。请参阅核心音频。
AudioUnit.framework
2.0
AU,Audio
包含加载和使用音频单元的接口。请参阅核心音频。
AVFoundation.framework
2.2
AV
包含用于播放和录制音频和视频的Objective-C接口。请参阅AV基础框架。
AVKit.framework
8
AV
包含用于播放和录制音频和视频的Objective-C接口。参见AVKit框架。
CFNetwork.framework
2.0
CF
包含通过Wi-Fi和蜂窝无线电接入网络的接口。请参阅CFNetwork框架。
CloudKit.framework
8
CK
包含用于获取和保存iCloud数据的Objective-C接口。请参阅CloudKit。
CoreAudio.framework
2.0
音频
提供核心音频中使用的数据类型。请参阅核心音频。
CoreAudioKit.framework
8
CA
提供核心音频中使用的数据类型。请参阅CoreAudioKit框架。
CoreBluetooth.framework
5
CB
提供对低功耗蓝牙硬件的访问。请参阅核心蓝牙框架。
CoreData.framework
3.0
NS
包含用于管理应用程序数据模型的界面。见核心数据框架。
CoreFoundation.framework
2.0
CF
提供基础软件服务,包括通用数据类型,字符串实用程序,收集工具,资源管理和首选项的抽象。请参阅核心基础框架。
CoreGraphics.framework
2.0
CG
包含Quartz 2D接口。请参阅核心图形框架。
CoreImage.framework
5
CI
包含用于操纵视频和静止图像的界面。请参阅核心图像框架。
CoreLocation.framework
2.0
CL
包含用于确定用户位置的界面。请参阅核心位置框架。
CoreMedia.framework
4
厘米
包含用于操纵音频和视频的低级例程。请参阅核心媒体框架。
CoreMIDI.framework
4.2
MIDI
包含用于处理MIDI数据的低级例程。请参阅核心音频。
CoreMotion.framework
4
厘米
包含用于访问加速度计和陀螺仪数据的接口。请参阅核心运动框架。
CoreTelephony.framework
4
CT
包含用于访问电话相关信息的例程。请参阅核心电话框架。
CoreText.framework
3.2
CT
包含文本布局和渲染引擎。见核心文本框架。
CoreVideo.framework
4
简历
包含用于管理视频帧内存的低级例程。
EventKit.framework
4
EK
包含用于访问用户日历事件数据的界面。参见EventKit框架。
EventKitUI.framework
4
EK
包含用于显示标准系统日历界面的类。请参见EventKit UI框架。
ExternalAccessory.framework
3.0
EA
包含用于与所附硬件附件通信的接口。请参阅外部附件框架。
Foundation.framework
2.0
NS
包含用于管理字符串,集合和其他低级数据类型的接口。请参阅基础框架。
GameController.framework
7
GC
包含用于与游戏相关的硬件进行通信的界面。参见游戏控制器框架。
GameKit.framework
3.0
GK
包含用于管理对等连接的接口。参见GameKit框架。
GLKit.framework
5
GLK
包含用于构建复杂OpenGL ES应用程序的Objective-C实用程序类。请参阅GLKit框架。
GSS.framework
5
GSS
提供一套标准的安全相关服务。
HealthKit.framework
8
HK
提供一种为用户存储健康相关信息的方法。请参阅HealthKit框架。
HomeKit.framework
8
HM
提供与集成家用设备通信的服务。请参阅HomeKit框架。
iAd.framework
4
广告
包含用于在您的应用程序中显示广告的类。请参阅iAd框架。
ImageIO.framework
4
CG
包含用于读取和写入图像数据的类。请参阅图像I / O框架。
IOKit.framework
2.0
N / A
包含设备使用的接口。不要直接使用这个框架。
JavaScriptCore.framework
7
JS
包含用于评估JavaScript代码和解析JSON的Objective-C包装器。请参阅JavaScript Core Framework。
LocalAuthentication.framework
8
LA
提供通过Touch ID认证用户的支持。请参阅本地身份验证框架。
MapKit.framework
3.0
MK
包含用于将地图界面嵌入到应用程序中的类,以及反向地理编码坐标。参见MapKit框架。
MediaAccessibility.framework
7
嘛
管理媒体文件中封闭字幕内容的演示。请参阅媒体辅助功能框架。
MediaPlayer.framework
2.0
MP
包含用于播放全屏视频的界面。请参阅Media Player框架。
MediaToolbox.framework
6
公吨
包含用于播放音频内容的接口。
MessageUI.framework
3.0
MF
包含用于撰写和排队电子邮件的界面。请参阅消息UI框架。
Metal.framework
8
MTL
为应用程序提供低开销图形渲染引擎。见金属框架。
MobileCoreServices.framework
3.0
UT
定义系统支持的统一类型标识符(UTI)。请参阅移动核心服务框架。
MultipeerConnectivity.framework
7
MC
提供用于实现设备间对等网络的接口。请参阅多层连接框架。
NetworkExtension.framework
8
NE
提供配置和控制VPN支持的接口。请参阅网络扩展框架。
NewsstandKit.framework
5
NK
提供在后台下载杂志和报纸内容的界面。请参阅NewsstandKit框架。
NotificationCenter.framework
8
NK
提供用于实现通知中心小部件的界面。请参阅通知中心框架。
OpenAL.framework
2.0
AL
包含OpenAL的接口,一个跨平台的位置音频库。请参阅OpenAL框架。
OpenGLES.framework
2.0
EAGL,GL
包含OpenGL ES的接口,OpenGL ES是OpenGL跨平台2D和3D图形渲染库的嵌入式版本。请参阅OpenGL ES Framework。
PassKit.framework
6
PK
包含用于创建数字通行证的接口,以替换门票,登机牌,会员卡等。请参阅PassKit框架。
Photos.framework
8
PH
包含用于访问和操纵照片和视频的界面。请参阅照片框架。
PhotosUI.framework
8
PH
包含用于创建操纵照片和视频资产的应用程序扩展名的界面。查看照片UI框架。
PushKit.framework
8
PK
为VoIP应用程序提供一种注册方式。请参阅PushKit Framework。
QuartzCore.framework
2.0
CA
包含核心动画界面。参见Quartz Core Framework。
QuickLook.framework
4
QL
包含用于预览文件的界面。请参阅快速查看框架。
SafariServices.framework
7
SS
支持在Safari中创建阅读列表项。请参阅Safari服务框架。
SceneKit.framework
8
SCN
提供用于创建3D图形的界面。请参阅SceneKit框架。
Security.framework
2.0
CSSM,Sec
包含用于管理证书,公钥和私钥以及信任策略的接口。请参阅安全框架。
Social.framework
6
SL
包含与社交媒体帐户交互的界面。见社会框架。
SpriteKit.framework
7
SK
促进创建基于sprite的动画和渲染。请参阅SpriteKit框架。
StoreKit.framework
3.0
SK
包含用于处理与应用内购买相关的金融交易的界面。请参阅StoreKit框架。
SystemConfiguration.framework
2.0
SC
包含用于确定设备的网络配置的接口。请参阅系统配置框架。
Twitter.framework
5
TW
包含通过Twitter服务发送推文的界面。请参阅Twitter Framework。
UIKit.framework
2.0
UI
包含iOS应用程序用户界面层的类和方法。请参阅UIKit框架。
VideoToolbox.framework
6
VT
包含用于压缩和解压缩视频帧的低级例程。
WebKit.framework
8
WK
提供将网页内容集成到应用程序中的支持。请参阅WebKit框架。
网友评论