过滤子列表

时间:2017-05-23 18:53:44

标签: swift realm nspredicate

我设置了一个Realm,以便公司有一个位置列表,每个位置都有一个联系人列表。我需要能够让用户通过邮政编码进行搜索并过滤掉匹配的联系人。

到目前为止我尝试过的是

let companies = realm.objects(Companies.self).filter({$0.locations.filter("ANY contacts.zip = \(userZip)")})

但它告诉我filter不能接受参数String。

当完成所有操作后,我需要它返回的是具有与给定搜索匹配的联系人的位置的公司列表。是否有一种更简单的方法可以实现这一目标呢?

1 个答案:

答案 0 :(得分:0)

您打算调用从Collection协议继承的filter()方法。要调用Realm的filter()方法,您需要编写如下:

realm.objects(Companies.self).filter("ANY locations.contacts.zip = %@", userZip)

仅供参考:请不要使用字符串插值来构造查询。当字符串是可选的时,字符串插值会导致意外行为请改用NSPredicate的替换语法。