检查云套件中是否存在数据

问题描述 投票:0回答:0

我的应用程序在首次设置时进行了一些导入。我将其设置为将核心数据存储在云工具包中。

我的问题是,如果您在一台设备上运行它,一切都可以正常导入。第二次运行它,它会第二次导入,复制记录。

我正在尝试查看是否有一种方法可以在运行导入之前检查云工具包中是否有任何内容,但我总是返回错误,即使我知道有记录。

我用来检查的代码是

NSLog("Existance Check")
        checkIfExistsInCloudKit() { (result) in
            print(result)
            if result == false {
                NSLog("Does Not Exist")
                //let ImportData : ImportData = ImportData(viewContext: viewContext)
                //ImportData.importAll()
            } else {
                NSLog("Does Exist")
            }
        }
        NSLog("Existance Check Complete")

函数是

func checkIfExistsInCloudKit(_ completion: @escaping (Bool) -> ()) {
    var result = false
    
    let container = CKContainer(identifier: "******")
    let privateDB = container.privateCloudDatabase
    let predicate = NSPredicate(format: "CD_brand = %@", "DMC")
    let query = CKQuery(recordType: "CD_Colour", predicate: predicate)
    privateDB.perform(query, inZoneWith: nil) { records, error in
       //guard let records = records else { return }
        result = true
    }
    
    completion(result)
}

打印结果给出

2023-04-15 14:07:28.092262+0100 Stitchers Companion[4553:113693] 存在检查

2023-04-15 14:07:28.092897+0100 Stitchers Companion[4553:113693] 不存在

2023-04-15 14:07:28.092962+0100 Stitchers Companion[4553:113693] 存在检查完成

core-data cloudkit
© www.soinside.com 2019 - 2024. All rights reserved.