swift - 使用谓词搜索对象的 NSMutableArray

标签 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),
        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 对象的名称属性。如何修复我的查询?

谢谢!

最佳答案

首先,删除 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)
}

或者类似的东西。

给你...

enter image description here

关于swift - 使用谓词搜索对象的 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28748681/

相关文章:

swift - 为 MapKit 中的每个注解添加 Id

ios - 我可以在 Swift 3 项目中使用 Swift 2.3 框架吗?

ios - NSMutableArray NSLog 输出不同的结果

objective-c - 我可以导入和使用 Objective C 中的 Stack 类吗?

swift - 如何在 Swift 中将参数作为字符类型添加到 NSMutableArray

ios - 使用 UISearchBar 在 Core Data 中搜索 NSDates(使用 NSDateFormatter 的字符串)

swift - 如何在不丢失 Swift 3 中的换行符的情况下将 HTML 文本转换为属性字符串

swift - 类型 'Any' 的值没有成员 'valueForKeyPath'

ios - 核心数据中的谓词搜索会在第二次通过时导致 SIGABRT。 NSBetweenPredicateOperator类型

ios - 确定 NSDate 是否在今天在 NSPredicate 中