首页 > 解决方案 > CloudKit 排除受限实体

问题描述

我正在尝试将 CloudKit 集成到我的应用程序中。我知道 CLoudKit 不支持约束实体(尽管我不明白为什么)。现在,嵌套到核心数据实体,也有包含这些实体的配置。可以将配置标记为“与 CloudKit 一起使用”。事实上,它是唯一的财产。因此,对我来说,如果我有一个仅包含不受约束的实体的配置(我们称之为“云”),并且它是唯一标记为“与 CloudKit 一起使用”的配置,那么没有任何受约束的实体会镜像在云端。

在我的 appdelegate 中,我这样做:

lazy var persistentContainer: NSPersistentCloudKitContainer = {
            let container = NSPersistentCloudKitContainer(name: "flixer-data")
              
            container.loadPersistentStores(completionHandler: { (storeDescription, error) in
                if let error = error as NSError? {
                    fatalError("Unresolved error \(error), \(error.userInfo)")
                }
            })
            
            
    #if DEBUG
            do {
                // Use the container to initialize the development schema.
                try container.initializeCloudKitSchema(options: [])
            } catch {
                // Handle any errors.
                
                print("Error info: \(error)")
            }
    #endif

我有一个标记为“与 CloudKit 一起使用”的配置,它不包含任何受约束的实体。

但是,当我启动我的应用程序时,它抱怨一个受约束的实体,我曾经与云套件同步,但不是我的配置标记“与 CloudKit 一起使用”的一部分

在我的 CloudKit 仪表板中,我想我通过点击“重置环境”清除了所有内容,并且在再次构建之前我还从设备中删除了我的应用程序。

这是预期的行为吗?即使我没有将受约束的实体与 CloudKit 同步,我也不能有任何约束吗?

标签: ioscore-datacloudkitunique-constraint

解决方案


推荐阅读