使用谓词搜索对象的 NSMutableArray
Use a predicate to search a NSMutableArray of Objects
我有一组要过滤的联系人: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 对象上看不到名称 属性。我该如何修正我的查询?
谢谢!
首先,删除 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() {
[=10=].name.hasPrefix(searchString)
}
或者类似的东西。
给你...
我有一组要过滤的联系人: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 对象上看不到名称 属性。我该如何修正我的查询?
谢谢!
首先,删除 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() {
[=10=].name.hasPrefix(searchString)
}
或者类似的东西。
给你...