Swift 使用谓词搜索对象的NSMutableArray

Swift 使用谓词搜索对象的NSMutableArray,swift,nsmutablearray,nspredicate,uisearchbardelegate,uisearchbardisplaycontrol,Swift,Nsmutablearray,Nspredicate,Uisearchbardelegate,Uisearchbardisplaycontrol,我有一组要筛选的联系人:var arraycontacts:NSMutableArray=[] arraycontacts包含大量FriendModel对象: var friend = FriendModel( name: self.contactName(contact), phone: self.contactPhones(contact), email: self.contactEmails(contact), pho

我有一组要筛选的联系人:
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)
}
我的上述代码产生以下错误:
此类不符合密钥名称的键值编码。

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


谢谢

首先,放下
NSMutableArray
,只需使用
var-arrayContacts:[FriendModel]=[]

然后对数组使用filter方法

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)
}
或者类似的东西

给你


首先,放下
NSMutableArray
,只需使用
var-arrayContacts:[FriendModel]=[]

然后对数组使用filter方法

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)
}
或者类似的东西

给你


谢谢!好主意。我的问题的关键是设置数组var array:[AnyObject]=self。arraycontacts以使用swift数组筛选器()谢谢!好主意。我的问题的关键是设置数组var array:[AnyObject]=self。arraycontacts以使用swift数组筛选器()