Swift 5 UISearchController База данных Firebase Очень медленно / медленно - PullRequest
0 голосов
/ 06 апреля 2019

Поиск в UITableView, который содержит данные Firebase с использованием UISearchController, медленнее / медленнее с большим количеством ячеек в таблице. Я пытался наблюдать за отдельными событиями вместо постоянного наблюдения за базой данных, но это ничего не меняет.

Я следовал указаниям Рэя Вендерлиха здесь: https://www.raywenderlich.com/472-uisearchcontroller-tutorial-getting-started

Загруженный образец кода не запаздывает. Я не могу понять, почему мой так медленно. Например, нажатие на строку поиска занимает 1-2 секунды для загрузки.

Вот мой код: Контроллер поиска:

extension SubCategoryViewController: UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController){
    filterContentForSearchText(searchController.searchBar.text!)
 }
}

 override func viewDidLoad() {
    super.viewDidLoad()
    searchBarSetup()
 ....
 }

let searchController = UISearchController(searchResultsController: nil)
var filtered = [SubCategoryCellInfo]()

func searchBarIsEmpty() -> Bool {
    return searchController.searchBar.text?.isEmpty ?? true
}
func filterContentForSearchText(_ searchText: String) {
    filtered = subCategories.filter({( cellInfo : SubCategoryCellInfo) -> Bool in
        return cellInfo.itemBrand!.lowercased().contains(searchText.lowercased())
    })
    subCategoryTable.reloadData()
}
func isFiltering() -> Bool {
    return searchController.isActive && !searchBarIsEmpty()
}

func searchBarSetup() {

    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = false

    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search"
    navigationItem.searchController = searchController
    definesPresentationContext = true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...