ios - 过滤 searchText 到 tableView

标签 ios swift firebase firebase-realtime-database uisearchbar

现在我正在使用以下内容

let data = ["New York, NY", "Los Angeles, CA" . . .]

var filteredData: [String]!

filteredData = data

但是我想通过使用这个来使用具有几乎相同结构的 Firebase

var data = [Categories]()

(这是类别)

struct Categories {

let key:String!
let content:String!
let itemRef:FIRDatabaseReference?

init (content:String, key:String = "") {
    self.key = key
    self.content = content
    self.itemRef = nil
}

init (snapshot:FIRDataSnapshot) {
    key = snapshot.key
    itemRef = snapshot.ref

    if let CategoriesContent = snapshot.value!["content"] as? String {
        content = CategoriesContent
    } else {
        content = ""
    }
}

所以当我搜索某些内容时,这些行应该过滤掉所有不正确的内容

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

    // Unhide tableview, this will be changed to another method
    tableView.hidden = false

    filteredData = searchText.isEmpty ? data : data.filter({(dataString: String) -> Bool in
        // If dataItem matches the searchText, return true to include it
        return dataString.rangeOfString(searchText) != nil
    })

    tableView.reloadData()
}

但是由于 filter({(dataString: String) 只接受字符串,所以它不起作用

问题:有没有其他方法可以用我的 Firebase 结构替换字符串?

非常感谢!

最佳答案

this tutorial在 UISearchResultsUpdating 和 Filtering 部分非常清楚。

关于ios - 过滤 searchText 到 tableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41293641/

相关文章:

java - 来自 Java 编译器的 Android 中的 strictpf

iphone - 类别,协议(protocol),一大类?我应该在这里使用什么

ios - 在View的边框上添加渐变色

firebase - _auth.signInWithCredential不起作用(卡住)

android - FirebaseAuthUserCollisionException?

ios - 使用以编程方式创建的自定义 UITableViewController 管理 UITableView

ios - 是否可以仅根据地区本地化 iOS 应用程序名称?

ios - SwiftUI Map iOS 14 处理拖动和放大手势

swift - UIPickerView鬼像

javascript - Firebase REST API - 如何设置字符编码?