2012-03-15 7 views
2

UITableViewからオブジェクトを削除しようとすると、CoreData例外を追跡するのが断続的になりました。CoreData例外のデバッグ

これについては多くの議論がありますが、さまざまな実装に固有のものであり、ベストプラクティスには適用できません。私が見たチュートリアルはセットアップには役立ちますが、あなたの状況を解決するための問題を教える際にはそれほど役に立ちません。

このタイプのCoreDataエラーをデバッグ/問題解決するための最良の方法と、正しい実行のための予想されるフローは何ですか?このような

エラー:

重大なアプリケーションエラー。 -controllerDidChangeContent:への呼び出し中に、NSFetchedResultsControllerの デリゲートから例外がキャッチされました。無効な更新:セクション0の行数が無効です。更新(3)後の既存のセクション に含まれる行数は、更新前のセクション(3)に含まれる行の数と同じでなければなりません。プラスまたはマイナスそのセクション(挿入された0、削除された1)から挿入または削除された行数 と、プラスセクション 、またはそのセクションに移動した行数から0を引いた行数(0移動 、0移動)。 with userInfo(null)

答えて

0

実際のUITableViewと余計FetchedResultsControllerによって引き起こされた問題は、(ここでは議論があります:stackoverflow.com/a/9755379/459116)はそのデリゲートとして設定

0

例外ブレークポイントを試しましたか? - 例外の原因となっている特定のコード行を教えてください。 xcodeのブレークポイントナビゲータに追加するには、ナビゲータの左下隅にある「+」をクリックし、例外例外ブレークポイントを押します。

+0

おかげで、はい、私はしている - 私に語ったことすべては、私が上のエラーを抱えているということです[self.tablview endupdates]これまであまり有用ではありませんでした。 – glenstorey

0

私はここで起こっていることは、あなたがNSFetchedResultsControllerがただ削除されたということを伝えているオブジェクトを削除するためにNSMutableArray(または何でも)を調整する必要があるということです。あなたは3つのオブジェクトを前に持っていました。あなたが削除されたことを示していました。セクション0の行にはまだ検出されていない2が含まれているはずです。

私はこれがあなたが求めている正確な質問ではないことを認識していますが、「最良の方法」の質問は良い答えを得るために少しばかり一般的かもしれません。

+0

この問題は実際には、代理人としてUITableViewを設定した余計なFetchedResultsControllerが原因です(ここでの議論があります:http://stackoverflow.com/a/9755379/459116)。しかし、今後もいくつかの戦略をデバッグしたいと思っています。この1つのケースに固有のものではありません。 CoreDataはいつもデバッグの面倒なビットです! – glenstorey

関連する問題