0

我有一组要过滤的联系人:var arraycontacts: NSMutableArray = []

arraycontacts 包含大量 FriendModel 对象:

    var friend = FriendModel(
        name: self.contactName(contact),
        phone: self.contactPhones(contact),
        email: self.contactEmails(contact),
        phoneString: self.contactPhonesString(contact)
    )
    self.arraycontacts.addObject(friend)

我希望能够使用 filterContentSearchText,将此数组限制为匹配或喜欢名称字符串的用户。基本上,我想按名称搜索。

这是我的尝试:

func filterContentForSearchText(searchText: String, scope: String = "All") {
    let namePredicate = NSPredicate(format: "name like %@", searchText)
    let term = self.arraycontacts.filteredArrayUsingPredicate(namePredicate!)
    println(term)
}

我上面的代码产生以下错误: this class is not key value coding-compliant for the key name.

显然,谓词在我的 FriendModel 对象上看不到 name 属性。如何修复我的查询?

谢谢!

4

1 回答 1

4

首先,删除NSMutableArray并使用var arrayContacts: [FriendModel] = [].

然后在数组上使用过滤器方法。

var friend = FriendModel(
        name: self.contactName(contact),
        phone: self.contactPhones(contact),
        email: self.contactEmails(contact),
        phoneString: self.contactPhonesString(contact)
    )
self.arraycontacts.append(friend)

let filteredArray = self.arrayContacts.filter() {
   $0.name.hasPrefix(searchString)
}

或者类似的东西。

干得好...

在此处输入图像描述

于 2015-02-26T17:23:24.710 回答