如何使用谓词通过电话号码过滤领域联系人?

时间:2018-07-09 08:19:40

标签: ios swift realm predicate

我有一个表格视图,显示所有联系人都使用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()
   }

1 个答案:

答案 0 :(得分:0)

领域中不支持对基元列表进行过滤。您只能过滤领域对象列表。 Issue tracking here.您可以执行一些解决方法,例如手动比较字符串,但是无法在领域中做到这一点。