我想知道是否有可能在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>
答案 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对象的引用 -