我需要做的是在我的开发者帐户下构建两个不同的应用程序。给用户一个查看数据库中的数据,并保留一个方便我更改此数据库。我正在使用CloudKit,默认容器和公共数据库。
所以我现在尝试的是我有一个用户应用程序让我们说app name是“showdata”。在那个应用程序中,我使用默认容器和公共数据库,如下所示:
let publicDatabase = CKContainer.default().publicCloudDatabase
然后我用它来执行查询:
query = CKQuery(recordType: "updateAndHold", predicate: NSPredicate(format: "TRUEPREDICATE"))
publicDatabase.perform(query!, inZoneWith: nil) { (records, error) in
在第二个应用程序中,我们将其命名为“updatedata”。 我应该怎么做才能使用相同的数据库和容器来更新数据。我试过这段代码:
let container = CKContainer.init(identifier: "iCloud.com.WMWIOS.showdata").publicCloudDatabase
但是当我获取任何记录时,它会给我一个错误,即没有该名称的权利:
query = CKQuery(recordType: "updateAndHold", predicate: NSPredicate(format: "TRUEPREDICATE"))
container.perform(query!, inZoneWith: nil) { (records, error) in
当我print(publicDatabase)
和print(container)
时,它具有不同的ID但标识符相同。
我需要帮助解决这个问题。如果您需要更多信息,请告诉我。