假设两个设备都使用相同的 CloudKit 登录,那么如果您要检查的数据存储在用户记录中,您可以这样做:
- 获取该用户的 CloudKit ID
func iCloudUserIDAsync(complete: @escaping (_ instance: CKRecord.ID?, _ error: NSError?) -> ()) {
let container = CKContainer.default()
container.fetchUserRecordID() {
recordID, error in
if let error = error {
//handle
} else {
self.userRecordID = recordID
complete(recordID, nil)
}
}
}
- 然后使用该 ID 查询 CloudKit 以获取用户:
CKContainer.default().publicCloudDatabase.fetch(withRecordID: userRecordID) { (results, error ) in
if results != nil {
//got the user record, do what you want with it
}
if let error = error {
//handle error
}
}
或者,如果您的数据不在用户记录中,那么您需要使用 CKQueryOperation 和谓词进行查询:这里有很好的教程:https ://www.raywenderlich.com/4878052-cloudkit-tutorial-getting-started