vim复制 Java开发手册 volatile 金融信贷 ajax postgresql session outlook rspec binding wso2 Pure CSS 支付网站建设 jquery点击事件 jquery事件绑定 mysql重新初始化 hbase端口 mysql卸载重装 css选择器有几种 bootstrap滚动条 hadoop环境变量配置 Navicat python的re模块 java开发环境 javapattern linux目录系统 javascript基础 js倒计时代码 r语言和python 微信超级好友 微信python退出程序 相机权限 选项卡 视频相册制作软件 dll下载 千千静听老版本 什么模拟器最好 视频字幕制作软件 ocr文字识别软件免费下载 冰冠堡垒单刷路线
当前位置: 首页 > 学习教程  > 编程语言

CloudKit快速入门之 使用CloudKit 设置核心数据 (SwiftUI iCloud CloudKit中文文档手册教程)

2020/8/11 20:57:31 文章标签:

使用CloudKit 设置核心数据

设置将您的商店同步到CloudKit的类和功能。

总览

要将您的核心数据存储同步到CloudKit,请为您的应用启用CloudKit功能。您还使用持久性容器设置了核心数据堆栈,该容器能够管理一个或多个由CloudKit私有数据库支持的本地持久性存储。

配置一个新的Xcode项目
创建新项目时,可以指定是否要直接从项目设置界面使用CloudKit添加对Core Data的支持。生成的项目会在您的应用的委托中实例化一个。在项目中启用CloudKit后,即可使用此容器来管理由CloudKit数据库支持的一个或多个本地存储。NSPersistentCloudKitContainer

选择“文件”>“新建”>“项目”以创建一个新项目。

选择一个项目模板用作您的项目的起点,然后单击“下一步”。

选择使用核心数据和使用CloudKit复选框。

输入任何其他项目详细信息,然后单击“下一步”。

指定项目的位置,然后单击“创建”。

截屏2020-08-11 下午8.33.16.png

并非所有项目模板都支持核心数据。如果要使用的模板不支持Core Data,请按照“ 设置Core Data堆栈”中的说明将Core Data添加到项目中。然后,如更新现有Xcode项目中所述,使用CloudKit添加Core Data 。

启用iCloud

使用CloudKit的核心数据要求您的应用具有特定的权利才能与服务器通信。首先将iCloud功能添加到您的Xcode项目中。

  1. 在项目设置中,选择“签名和功能”选项卡。

  2. 确保选择“自动管理签名”。

  3. 指定您的开发团队。

  4. 单击+功能按钮,然后在添加功能编辑器中搜索iCloud并选择该功能。

截屏2020-08-11 下午8.38.20.png

启用CloudKit和推送通知
CloudKit的核心数据使用CloudKit服务访问您团队的容器。要启用CloudKit,请配置iCloud功能。

在项目设置中,选择“签名和功能”选项卡。

在“ iCloud”部分的“服务”下,选中“ CloudKit”复选框。此选择还会添加推送通知,以在远程内容更改时通知您的应用程序。

在“容器”下,将选择保留为“使用默认容器”。

截屏2020-08-11 下午8.39.22.png

Xcode会检查您的开发团队是否支持Push Notification和iCloud功能,然后注册您的应用程序的包标识符并管理配置文件。

有关使用CloudKit容器和设置配置文件的更多信息,请参阅在应用程序中启用CloudKit。

在后台启用远程通知

为了让CloudKit在可用新内容时以静默方式通知您的应用程序,而不会显示用户通知(例如警报,声音或徽章),您需要启用远程通知背景模式。

  1. 在项目设置中,选择“签名和功能”选项卡。

  2. 单击+功能按钮,然后在“添加功能”编辑器中搜索“后台模式”,然后选择该功能。

  3. 选择“远程通知”复选框。

截屏2020-08-11 下午8.40.10.png

更新现有的Xcode项目

如果要将CloudKit中的Core Data添加到已经使用Core Data的应用中,则需要修改项目的配置及其一些代码。

首先,如前所述,在后台启用iCloud,CloudKit,推送通知和远程通知。然后,将持久容器替换为的实例。NSPersistent<wbr data-v-7fb764c1="" style="quotes: &quot;“&quot; &quot;”&quot;; font-style: normal;">Cloud<wbr data-v-7fb764c1="" style="quotes: &quot;“&quot; &quot;”&quot;; font-style: normal;">Kit<wbr data-v-7fb764c1="" style="quotes: &quot;“&quot; &quot;”&quot;; font-style: normal;">Container

例如,如果您是通过iOS Single View App模板创建的项目,并且选中了“使用核心数据”复选框,则以下代码将出现在应用程序的委托中:

class AppDelegate: UIResponder, UIApplicationDelegate {

    // ...
    
    lazy var persistentContainer: NSPersistentContainer = {
    
        let container = NSPersistentContainer(name: "Earthquakes")
        container.loadPersistentStores(completionHandler: { 
            (storeDescription, error) in
            if let error = error as NSError? {
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
        return container
    }()
    
    // ...
}

NSPersistentContainer仅支持本地持久存储。要添加将本地存储同步到CloudKit数据库的功能,请替换为子类。NSPersistentContainerNSPersistentCloudKitContainer

  let container = NSPersistentCloudKitContainer(name: "Earthquakes")

管理多个商店

您可能希望使用CloudKit镜像一部分数据,同时将其他数据完全保留在本地。您可以将配置添加到模型中,以在单独的存储中组织数据,然后选择要同步到CloudKit的存储。

打开项目的.xcdatamodeld文件。

选择“编辑器>添加配置”。

将每个实体拖动到配置中。

选择要同步到CloudKit的配置,然后在数据模型编辑器中选择“与CloudKit一起使用”复选框。对要同步的每个配置重复上述步骤。

截屏2020-08-11 下午8.43.33.png

对于没有配置的应用程序,将第一个商店描述与权利中的第一个CloudKit容器标识符匹配。NSPersistentCloudKitContainer

对于具有配置的应用程序,您需要告诉它每个商店要使用哪个CloudKit容器(如果有)。对于每种配置,请对容器设置进行以下更改:

创建一个。NSPersistentStoreDescription

设置商店描述的配置。

如果此配置应同步到CloudKit,请将商店描述设置为的实例。在初始化程序中提供CloudKit容器的容器标识符。cloudKitContainerOptionsNSPersistentCloudKitContainerOptions

在加载商店之前,将商店描述添加到持久性容器中。

以下示例代码创建两个商店描述:一个用于“本地”配置,另一个用于“ Cloud”配置。然后,它设置云商店描述以使其与其CloudKit容器匹配。最后,它更新容器的持久性商店描述列表,以包括所有本地和云支持的商店描述,并加载两个商店。cloudKitContainerOptions

lazy var persistentContainer: NSPersistentCloudKitContainer = {
    let container = NSPersistentCloudKitContainer(name: "Earthquakes")
    
    // Create a store description for a local store
    let localStoreLocation = URL(fileURLWithPath: "/path/to/local.store")
    let localStoreDescription =
        NSPersistentStoreDescription(url: localStoreLocation)
    localStoreDescription.configuration = "Local"
    
    // Create a store description for a CloudKit-backed local store
    let cloudStoreLocation = URL(fileURLWithPath: "/path/to/cloud.store")
    let cloudStoreDescription =
        NSPersistentStoreDescription(url: cloudStoreLocation)
    cloudStoreDescription.configuration = "Cloud"

    // Set the container options on the cloud store
    cloudStoreDescription.cloudKitContainerOptions = 
        NSPersistentCloudKitContainerOptions(
            containerIdentifier: "com.my.container")
    
    // Update the container's list of store descriptions
    container.persistentStoreDescriptions = [
        cloudStoreDescription,
        localStoreDescription
    ]
    
    // Load both stores
    container.loadPersistentStores { storeDescription, error in
        guard error == nil else {
            fatalError("Could not load persistent stores. \(error!)")
        }
    }
    
    return container
}()

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470


本文链接: http://www.dtmao.cc/news_show_100442.shtml

附件下载

上一篇:MatLab安装

下一篇:数组的一些简单操作

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?