我设置了一个Realm,以便公司有一个位置列表,每个位置都有一个联系人列表。我需要能够让用户通过邮政编码进行搜索并过滤掉匹配的联系人。
到目前为止我尝试过的是
let companies = realm.objects(Companies.self).filter({$0.locations.filter("ANY contacts.zip = \(userZip)")})
但它告诉我filter
不能接受参数String。
当完成所有操作后,我需要它返回的是具有与给定搜索匹配的联系人的位置的公司列表。是否有一种更简单的方法可以实现这一目标呢?
答案 0 :(得分:0)
您打算调用从Collection协议继承的filter()
方法。要调用Realm的filter()
方法,您需要编写如下:
realm.objects(Companies.self).filter("ANY locations.contacts.zip = %@", userZip)
仅供参考:请不要使用字符串插值来构造查询。当字符串是可选的时,字符串插值会导致意外行为请改用NSPredicate
的替换语法。