2
をフィルタするとき、私は私の構造体をフィルタ処理しようとしている。このようエラー構造体
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell: LibrarySongTableViewCell! = tableView.dequeueReusableCell(withIdentifier: "Library Cell") as! LibrarySongTableViewCell
cell.titleLabel = songs[indexPath.row].title
cell.artistLabel = songs[indexPath.row].artist
}
:UITableView
にdispays
class Song: CustomStringConvertible {
let title: String
let artist: String
init(title: String, artist: String) {
self.title = title
self.artist = artist
}
var description: String {
return "\(title) \(artist)"
}
}
var songs = [
Song(title: "Song Title 3", artist: "Song Author 3"),
Song(title: "Song Title 2", artist: "Song Author 2"),
Song(title: "Song Title 1", artist: "Song Author 1"),
Song(title: "Song Title 0", artist: "Song Author 1")
]
var filteredArtist = songs.filter { song -> Bool in
return song.artist == "Artist Name"
}
しかし、I cellForRowAtindexPath
を変更するたびにエラーThread 1: EXC_BAD_INSTRUCTION
が表示されます
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell : LibrarySongTableViewCell! = tableView.dequeueReusableCell(withIdentifier: "Library Cell") as! LibrarySongTableViewCell
cell.titleLabel = filteredArtist[indexPath.row].title
cell.artistLabel = filteredArtist[indexPath.row].artist
}
どうすればこの問題を解決できますか?私は、この行にエラーが発生します。
cell.titleLabel = filteredArtist[indexPath.row].title
よう
tableView:tableView:numberOfRowsInSection
方法、あなたの'のtableViewを更新する書き込みを試してみてください。 –フィルタリングを行うために、UISearchControllerを実装しましたか?そうでない場合は、チュートリアルの1つを読むことをお勧めします。ソリューションをより堅牢に設計するのに役立ちます。 (*私はあなたの 'cellForRowAt'を変更したくないと思っています。最初に新しいフィルタリングされたtableViewが描画されます '*) – AgRizzo