【发布时间】:2018-07-09 08:19:40
【问题描述】:
我有一个表格视图,显示所有联系人都使用 RealmSwift。 如何使用 Predicate 按电话号码过滤领域联系人?
class Contact: Object {
@objc dynamic var firstName = ""
@objc dynamic var lastName = ""
var number = List<String>()
@objc dynamic var avatar:Data?
var email = List<String>()
}
var contacts:Results<Contact>?
//When click search button
DispatchQueue.main.async {
self.contacts = self.phoneContact.readContactFromLocal()
var contacts_tmp1 = self.contacts
if self.txt_search.text != nil && self.txt_search.text != ""{
let predicate = NSPredicate(format: "firstName contains[c] %@ OR lastName contains[c] %@", self.txt_search.text!, self.txt_search.text!)
contacts_tmp1 = contacts_tmp1?.filter(predicate)
}
contacts_tmp1 = contacts_tmp1?.sorted(byKeyPath: "firstName", ascending: true)
self.contacts = contacts_tmp1
self.tableView.reloadData()
}
【问题讨论】:
-
请提供您目前尝试过的代码。
-
我在 Predicate 中按 firstName 和 lastName 过滤
-
@LeVanPhuong 请更新问题中的代码,不要评论
-
我在问题中更新了代码。谢谢
-
您似乎已经知道如何使用
filter和NSPredicates 来过滤Realm 查询,那么您的实际问题是什么?您是否只是试图检索其number属性与给定String匹配的联系人?