J'ai un UITableView
et un UISearchController
. Je veux filtrer mon tableau de données (nommé: allGames) selon le NSPredicate
du UISearchBar.text
.Filtrer un tableau struct selon un NSPredicate SWIFT
Mon code filtre seulement un tableau de chaîne comme ceci:
func updateSearchResults(for searchController: UISearchController) {
filteredGames.removeAll(keepingCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (allGames).filtered(using: searchPredicate)
filteredGames = array as! [String]
self.tableView.reloadData()
}
Ici, je peux filtrer mon tableau. Mais si je crée cette structure:
struct Games {
var name: String?
var type: String?
var image: UIImage?
}
Comment puis-je filtrer la matrice en fonction des noms et des types de jeu? Merci d'avance pour votre aide.
Possible duplication de [Barre de recherche Swift 3 - Ne peut pas utiliser dans/contient opérateur avec collection] (https://stackoverflow.com/questions/41308007/search-bar-swift-3-cant-use-in- contains-operator-with-collection) - Vous ne pouvez pas utiliser NSPredicate avec un tableau de structures. –
Voir aussi [Swift - Recherche en utilisant UISearchController et NSPredicate avec un tableau de structures] (https://stackoverflow.com/questions/32556328/swift-search-using-uisearch-controller-and-nspredicate-with-an-array-of- structs) ou [Recherche de struct dans swift] (https://stackoverflow.com/questions/34360226/search-for-struct-in-swift). –
Oh j'ai lu beaucoup de questions et je n'ai pas trouvé ces questions! –