2016-11-11 9 views
0

私はすでにこのテーマに関する多くのトピックを見たが、私はまだエラーを持っている...ここで アプリケーションがクラッシュ

は、テーブルビューのデリゲートメソッドでは私のコードです私はこのようnumberOfSectionsのデリゲートメソッドを実装している

self.tableView.beginUpdates() 

if self.data[sectionType]!.isEmpty { 
    self.data.removeValue(forKey: sectionType) 
} 

self.tableView.deleteRows(at: [indexPath], with: .fade) 
self.tableView.endUpdates() 

:(ユーザーのスワイプとは、細胞上の削除ボタンをクリックしたときに呼び出される)

func numberOfSections(in tableView: UITableView) -> Int { 
    return data.count 
} 

そして、これは誤りであります私が取得:

***キャッチされない例外により「NSInternalInconsistencyException」にアプリを終了、理由:「のUITableViewの内部エラー:古いセクション数を持つ新しいセクションマップを生成することができません:1と新しいセクション数:0」

reloadData()によってdeleteRows(tableView)メソッドを置き換えると同じエラーが発生します...

エラーが発生した場合、if条件にチェックを入れます。したがって、データは更新され(removeValue()呼び出しの後の0要素)、私はdeleteRowsメソッドを呼び出します。

ありがとうございました。

+2

numberOfRowsInSectionメソッドを使用しましたか? –

答えて

0

行またはセクションを削除しようとしていますか?

if self.data[sectionType]!.isEmpty { 
    self.data.removeValue(forKey: sectionType) 
} 

セクションを削除しようとしています。あなたが行を削除しようとしている場合、このような何かに上部を変更

let indexSet = NSMutableIndexSet() 
indexSet.addIndex(section) 
self.tableView.deleteSections(indexSet, withRowAnimation: .fade) 

if self.data[sectionType]!.isEmpty { 
    self.data[sectionType].remove(at: rowToRemove) 
} 
+0

あなたはまったく正しい!セクションを削除したかった私はUITableViewの正しいメソッドを使用しませんでした。 deleteSections()メソッドは私の問題を修正しました:) ありがとう!! –

0

あなたがかもしれないように見えますあなたがいる場合には、この種の何かを続けなければなりません。 1つのセルではなく、セクション内のすべての行を削除してください。

私は、self.dataはキーがセクションであり、値がセル情報を含む配列であると仮定しています。 辞書のキーを削除する代わりに。あなたがここにいるように...

セクションにアクセスしてその行だけを削除したい場合があります。このような何か...

data[sectionType]?.remove(at: indexPath.row) 

私はこの方法numberOfRowsInSection:のためのあなたが持っているの戻り値が似たような...

return data[sectionType]?.count 

これは何らかの方法で役に立てば幸いであると仮定します。

関連する問題