cloudkit - CKQuery 哪里谓词有引用而不是字段?

标签 cloudkit ckquery

我需要创建一个CKQuery,其中谓词包含记录的引用,而不是记录的字段。

像这样

let query = CKQuery(recordType: "OUP", predicate: NSPredicate(format: "o = %@", "FF4FB4A9-271A-4AF4-B02C-722ABF25BF44")

如何设置o是CKReference,而不是字段!

我收到此错误:

字段“o”的查询谓词中的字段值类型不匹配

最佳答案

您可以使用 CKRecordCKRecordID(带或不带 CKReference)来匹配关系。

CK记录:

let predicate = NSPredicate(format: "artist == %@", artist)

CKRecordID:

let predicate = NSPredicate(format: "artist == %@", artistID)

CKReference 与 CKRecord:

let recordToMatch = CKReference(record: artist, action: CKReferenceAction.None)
let predicate = NSPredicate(format: "artist == %@", recordToMatch)

带有 CKRecordID 的 CKReference:

let recordToMatch = CKReference(recordID: artistID, action: CKReferenceAction.None)
let predicate = NSPredicate(format: "artist == %@", recordToMatch)

关于cloudkit - CKQuery 哪里谓词有引用而不是字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961807/

相关文章:

ios8 - CloudKit 推送通知,后台运行的应用程序

ios - 在没有CloudKit仪表板的情况下管理数据库?

ios - Objective-C - 推送通知不适用于 Cloudkit

objective-c - CKQueryOperation 处理大批量

swift - 了解如何正确执行 CKQueryOperation

ios - 是否可以找到也有Apple设备的用户的联系人?

swift - 为什么我不能快速在 CKRecord 对象上使用下标?

ios - 停止不真实的 CloudKit 调用?

ios - CKQueryOperation iOS 9仅可插入工作

ios - 如何按字段和记录类型执行查询