Swift:如何对数组中结构的子值使用 UISearchResultsUpdating?
Posted
技术标签:
【中文标题】Swift:如何对数组中结构的子值使用 UISearchResultsUpdating?【英文标题】:Swift: How can I use UISearchResultsUpdating on child values of structs in an array? 【发布时间】:2016-03-29 18:28:48 【问题描述】:在这个 UITableViewController 我有一个这样的结构数组:
struct UserItem
let key: String!
let displayName: String!
let profilePictureUrl: String!
let ref: Firebase!
init(snapshot: FDataSnapshot)
key = snapshot.key
displayName = snapshot.value["displayName"] as! String
profilePictureUrl = snapshot.value["profileImage"] as! String
ref = snapshot.ref
我有一个使用 UISearchResultsUpdating 类的搜索栏:
func updateSearchResultsForSearchController(searchController: UISearchController)
我要做的是在 UserItem.displayName 属性的搜索栏中使用 NSPredicate 过滤掉 UserItem 对象的数组。
我最近的尝试是将所有 .displayName 值放在一个 [String] 数组中,然后将其过滤到一个新的 [String] 数组中,但这对我来说似乎有点混乱。我想简单地过滤 [UserItem] 数组。
我需要 UserItem 数组,以便我可以将我的 segue 中的唯一用户 ID 与用户配置文件进行比较。
有没有办法做到这一点?
【问题讨论】:
【参考方案1】:你必须使用谓词吗?如果没有,您可以使用闭包轻松过滤结构数组,如下所示:
let filteredUserItems = userItems.filter return $0.displayName.lowercaseString.containsString(searchValue.lowercaseString)
【讨论】:
这正是我在网上搜索的内容,非常感谢。以上是关于Swift:如何对数组中结构的子值使用 UISearchResultsUpdating?的主要内容,如果未能解决你的问题,请参考以下文章