问题描述
开发中还可以, 但是当我通过TestFlight分发我的应用程序时,我遇到了这个问题。
当我检查一些故障时, 我猜想未创建记录的用户尝试修改记录时,。 顺便说一下,我可以获取所有公共数据库上的记录值。仅执行修改。
在下面的图片中,iCloud帐户被写入绿色区域。我预测这些必须相同。
image: Metadata - CloudKit Dashboard
func modifyRecord() {
let publicDatabase = CKContainer.default().publiccloudDatabase
let predicate = nspredicate(format: "accountID == %@",argumentArray: [myID!])
let query = CKQuery(recordtype: "Accounts",predicate: predicate)
publicDatabase.perform(query,inZoneWith: nil,completionHandler: {(records,error) in
if let error = error {
print("error1: \(error)")
return
}
for record in records! {
/* ↓ New Value */
record["currentLocation"] = CLLocation(latitude: 40.689283,longitude: -74.044368)
publicDatabase.save(record,completionHandler: {(record,error) in
if let error = error {
print("error2: \(error)")
return
}
print("success!")
})
}
})
}
在开发中,我自己创建和修改了所有记录,所以找不到该问题。
版本
Xcode 11.6 / Swift 5
摘要
我猜想必须由同一用户(=相同的iCloud帐户)在此代码中创建和修改记录。 然后,您能告诉我如何修改其他用户创建的记录吗? 首先,我可以这样做吗?
谢谢。