我有一个表格视图,显示所有联系人都使用RealmSwift。 如何使用谓词按电话号码过滤领域联系人?
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()
}
答案 0 :(得分:0)
领域中不支持对基元列表进行过滤。您只能过滤领域对象列表。 Issue tracking here.您可以执行一些解决方法,例如手动比较字符串,但是无法在领域中做到这一点。