私は、検索結果を示すテーブルビューを持っています。それを検索するすべてのオブジェクトの配列、およびテーブルビューを供給する濾過オブジェクトの配列を有しています。 更新テーブルビューは
ユーザーが検索バーのテキストを変更
は、私はフィルタ配列を更新し、テーブルビューをリロードしてください。また、各セルは、テーブルビューのセルを更新する前に、キャッシュまたは非同期的にダウンロードされるか、サムネイルを持っています。だから、テーブルビューのデータがリロードされる2つの場所がtableView.reloadData()
を呼び出し、フィルタリング方法、であり、そして必要に応じて画像をダウンロードする場合は、メインスレッド上でself.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimationStyle: .None)
を呼び出すcellForRowAtIndexPath
、インチ
Soが私はあらゆる種類の問題を抱えてきました。私が得た3種類のエラー:
- 致命的なエラー:インデックスが範囲外です。これは、ユーザーが検索テキストを変更したため
cellForRowAtIndexPath
は、それが空にされています後に配列からコンテンツを取得しようとしていたときに起こっているようです。テーブルビューと - エラー:セクション0に行34を挿入しようとして例えば、エラー私はこれが起こることを引き起こしているかわからないんだけど、私はテーブルビューがのために何のセクションを持っていないときに行を挿入しようとしていると思います配列が空です。
- 内部矛盾例外:この問題が発生したとき、私はそれだけでクラッシュし、余分な情報を得ることはありません。だから、私はこの問題が何であるか分からない。
それでは、どのように私は、これらの問題を回避することができますか?私は今これらのエラーを取り除くために数日間努力してきましたが、何も試してみません。誰にもアイデアはありますか?ありがとう。 Redditの上の誰かに
親切な問題へのより良い外観を取得するためのtableViewデリゲートのいくつかのコードを提供しています。 –