CloudKit:获取列表属性

时间:2017-02-28 03:51:43

标签: ios swift nspredicate cloudkit

我想知道是否有可能在CloudKit中形成一个NSPredicate来执行以下操作:

假设我有一些记录类型 A 。假设 A 的某些属性 b 属于[CKReference]类型。让 c 成为 b CKReference类型的某个元素。

我希望查询列表 b c 类型 A 的所有记录。是否可以使用NSPredicate执行此操作?

提前致谢!

修改

我基本上想要这样做(CloudKit - NSPredicate for finding all records that contain specified CKReference in a reference list),但是在Swift 3中。我无法在线找到好的资源来解释如何在contains中使用NSPredicate。< / p>

2 个答案:

答案 0 :(得分:1)

根据我在问题中使用的变量,以下是最终为我工作的内容:

let C = CKReference(recordID: userRecordID!, action: .none)

let joinedPredicate = NSPredicate(format: "%K CONTAINS %@", B'/ EM> , C )

let joinedQuery = CKQuery(recordType: A , predicate: joinedPredicate)

答案 1 :(得分:0)

var predicates = [NSPredicate]()
predicates.append(NSPredicate(format: "("your key" CONTAINS[cd]%@)", filterString))

and initialising CKrefrence in swift 

let reference = CKReference(recordID: example.recordID, action: .deleteSelf)

你可以使用 - let reference = CKReference(recordID:example.recordID,action:.deleteSelf)来创建CKReference对象,其中example.recordId将是你的CloudKit中的记录ID,在创建之后你需要使用谓词让你的过滤器其中predicates.append(NSPredicate(格式:“(”你的密钥“CONTAINS [cd]%@)”,filterString))过滤字符串将包含你创建的CKReference对象的引用 -