나는 UITableView
과 UISearchController
을가집니다. UISearchBar.text
의 NSPredicate
에 따라 데이터 정렬 (allGames)을 필터링하려고합니다.NSPredicate에 따라 구조체 배열 필터링 SWIFT
내 코드는 다음과 같이 문자열의 배열을 필터링 : 여기
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()
}
내 배열을 필터링 할 수 있습니다. 하지만이 구조체를 만들면 :
struct Games {
var name: String?
var type: String?
var image: UIImage?
}
게임 이름과 유형에 따라 배열을 필터링하려면 어떻게해야합니까? 귀하의 도움에 미리 감사드립니다. 구조체가 단수형 Game
에 지명 될 것으로 예상되는 방식에 의해 - - allGames
가정
[Search Bar Swift 3 - 콜렉션에서 연산자를 사용할 수 없음] (https://stackoverflow.com/questions/41308007/search-bar-swift-3-cant-use-in- contains-operator-with-collection) - 구조체 배열에 NSPredicate를 사용할 수 없습니다. –
참고 사항 [Swift - 구조체 배열을 사용하여 UISearchController 및 NSPredicate를 사용하여 검색] (https://stackoverflow.com/questions/32556328/swift-search-using-uisearchcontroller-and-nspredicate-with-an-array-of- structs) 또는 [구조체 검색] (https://stackoverflow.com/questions/34360226/search-for-struct-in-swift)을 참조하십시오. –
오, 나는 많은 질문을 읽고 이러한 질문을 찾지 못했습니다! –