1.2.2 Core Services

1.2.2 Core Services

Core Services层为iOS应用程序提供基础的系统服务。其中最重要的是Core Foundation和Foundation框架,它们定义了所有应用都需要的基础类型。这一层还包含了诸如位置服务、iCloud、社交媒体和通讯录的基础服务。下面罗列一些开发者可能会遇到的框架。

1.Core Foundation

通过Core Foundation,应用可以访问与Foundation框架无缝桥接的低级函数、原始数据类型和各种集合类型。Core Foundation框架不仅提供了对应用服务、应用环境和应用本身有用的基础软件服务,还提供了常见数据类型的抽象,通过Unicode字符串存储实现国际化,并提供了一组实用程序,如插件支持、XML属性列表、URL资源访问和首选项。

2.Foundation

通过Foundation,应用可以访问基本数据类型、集合和操作系统服务。Foundation框架为应用程序和框架提供基本功能层,包括数据存储和持久化、文本处理、日期和时间计算、排序和过滤以及网络。Foundation定义的类、协议和数据类型在macOS、iOS、watchOS和tvOS SDK中都能使用。

3.AddressBook

通过AddressBook,应用可以访问集中式数据库中存储的用户联系人。通讯录就是一个数据库,用于存储联系方式和其他个人信息。用户只需录入一次关于他们自己及朋友的个人信息,而不需要在使用信息时反复录入。使用AddressBook框架的应用程序与其他应用程序共享此类信息,包括Apple的Mail和iChat。

4.Contacts

通过Contacts,应用可以访问用户联系人的联系信息,这些信息还能根据本机的语言进行适配。Contacts框架提供Swift和Objective-C API(应用程序接口)来访问用户的联系信息。由于大多数应用场景是用户读取联系人信息而非修改,因此该框架针对线程安全的只读用法进行了优化。

5.CloudKit

通过CloudKit,应用可以将结构化的应用数据和用户数据存储在iCloud容器中,以便用户在不同设备上的同一应用下进行共享。 开发者可以使用CloudKit获取应用程序的现有数据并将其存储在云中,以便用户可以在多个设备上访问它。开发者还可以选择将数据存储在所有用户都能访问的公共区域中。

6.Multipeer Connectivity

Multipeer Connectivity为苹果设备提供了发现附近设备以及进行点对点连接的能力。在此基础上,它支持传输消息、流数据和资源的服务。在iOS中,该框架使用共用Wi-Fi、点对点Wi-Fi和蓝牙作为底层传输媒介;在macOS和tvOS中,它使用共用Wi-Fi、点对点Wi-Fi和以太网。

7.UserNotifications

通过UserNotifications,应用可以将通知从服务器推送到用户的设备上,或从应用程序本地生成通知。无论应用是否在用户的设备上运行,通知都会向安装了该应用的用户传达重要信息。例如,体育应用可以让用户知道他们最喜欢的球队得分情况;通知可以告诉应用下载信息并更新其界面;通知还可以显示警报、播放声音或标记应用程序的图标。开发者可以从应用程序本地生成通知,也可以从开发者管理的服务器远程推送通知。对于本地通知,应用程序会创建通知内容,并指定触发通知传递的条件,如时间或位置;对于远程通知,开发者使用公司的某个服务器生成通知,再经过Apple推送通知服务(APNs)处理将这些通知传递到用户的设备上。

8.WebKit

通过WebKit,应用可以在窗口中显示Web内容。WebKit提供了一组类,用于展示Web内容,并实现浏览器功能。WebKit极大地简化了加载网页的复杂过程,比如从HTTP服务器异步请求Web内容,其响应可能以递增、随机顺序执行,或由于网络错误而未到达,这些过程将被WebKit处理,最终以一个简单的结果返回应用层。WebKit还简化了可以显示包含各种MIME类型的内容的过程和带有复合框架的元素,其中每个元素都有自己的滚动条。