使用相同的键过滤CKRecords时的谓词无效

时间:2015-07-15 21:52:48

标签: swift nspredicate ckrecord

我有CKRecord类型"关注"它存储用户的ID和他们关注的朋友的ID。 (假设用户只能跟随1个人并且其周围的逻辑在其他地方处理)。 CloudKid中记录定义的屏幕截图:http://screencast.com/t/Tb83lyjLV7

我想查询关注记录,以确认两个用户互相关注,实际上是朋友。

这些是基本查询。每个都可以正常使用

Polymer

我想将这两个谓词和查询组合一次,这样如果两个记录回来,就会假设不同的用户互相跟随

我尝试手动和使用NSCompoundPredicate将它们组合在一起:

let followPredicate = NSPredicate(format: "userID == %@ AND followsID == %@", userId, followsID)
let followedPredicate = NSPredicate(format: "followsID == %@ AND userID == %@", userId, followsID)

然后我在这里使用查询:

let friendPredicate = NSCompoundPredicate(type: NSCompoundPredicateType.OrPredicateType, subpredicates: [followPredicate, followedPredicate])
let friendPredicate = NSPredicate(format: "(followsID == %@ AND userID == %@) OR (userID == %@ AND followsID == %@)", userId, followsID, userId, followsID)

在上面的friendPredicate的两个版本中,我都得到一个无效的谓词异常。

let friendQuery = CKQuery(recordType: "Follow", predicate: friendPredicate)

我是接近这个错误还是做出了无效的假设? 非常感谢任何帮助

0 个答案:

没有答案