簡體   English   中英

Swift:如何對數組中結構的子值使用 UISearchResultsUpdating?

[英]Swift: How can I use UISearchResultsUpdating on child values of structs in an array?

在這個 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 與用戶配置文件進行比較。

有沒有辦法做到這一點?

你必須使用謂詞嗎? 如果沒有,您可以使用閉包輕松過濾結構數組,如下所示:

let filteredUserItems = userItems.filter { return $0.displayName.lowercaseString.containsString(searchValue.lowercaseString) }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM