テーブルビューを使用して、コアデータからアイテムのリストを表示するアプリケーションがあります。私はリモートAPIを使用しており、テーブルビューをプルダウンした後にコンテンツを更新しています。これにより、APIへの呼び出しがトリガーされます。NSFetchedResultsControllerデリゲート例外
データが取得され、解析され、コアデータに挿入/更新されます。
私は時にはコアデータコンテキストを保存した後にエラーが発生します...私はこれに複数のスレッドを使用していないことに注意してください。
私は文字通りかなり怒っています。
2012-07-31 14:14:47.332 MyApp[2893:11303]
*** Assertion failure in -[_UITableViewUpdateSupport _setupAnimationsForNewlyInsertedCells],
/SourceCache/UIKit_Sim/UIKit-1914.84/UITableViewSupport.m:1133
2012-07-31 14:14:47.332 MyApp[2893:11303] CoreData: error: Serious application error.
An exception was caught from the delegate of NSFetchedResultsController during a call to -
controllerDidChangeContent:.
Attempt to create two animations for cell with userInfo (null)
UPDATE::私が持っている
は完全なエラーである:この男は同様の問題を持っていますが、私はまだ彼の溶液で鉱山を修正することができないんだそうですフェッチ要求の述語。以前にAPIからダウンロードしたオブジェクトを削除しているように見えるため、新しいJSONの結果から欠落しています。 hideFromUserフラグを設定していますが、これは私のCore Dataに保存されています。
このフラグがYESの場合、テーブルビューには表示されません。しかし、それが大丈夫ならそれはそうです。私は何か変更があった場合、その管理オブジェクトに関する情報も更新しています。以前隠すように設定されたオブジェクトを持っていて、表示するように設定されている可能性はありますか?また、新しいデータがありました。この "セルは更新する必要がありますか?
さらに詳しくは、それほど関連性が低いと思われます。ここで
は、私は私のデータを更新しています方法です:
1)私は、「非表示のフォームのユーザー」(NSPredicateは、彼らが表形式で表示されませんが保証)に対応するタイプのすべての関連オブジェクトを設定します。
2)私はJSONデータからNSArrayを取得します。
3)私のcreateABookOfClass:withJSON:メソッドは、各項目をループする(json辞書のIDを使用して)ブックのコアデータを検索し、見つからなければ新しいものを作成します。注:この時点で、「ユーザーからの隠蔽」フラグは元に戻されます。
4)結局、保存します。何が起こっていることは、Aが更新されたオブジェクトを含むセルである
[[DPLocalStore getInstance] hideFlagItemsOfType:NSStringFromClass([MyFavouriteBook class])];
NSArray * itemsJSON = [data mutableObjectFromJSONData];
[itemsJSON enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL *stop) {
[[DPLocalStore getInstance] createABookOfClass:[MyFavouriteBook class]
withJSON:obj];
}];
NSError *error = nil;
BOOL didsave = [[DPLocalStore getInstance] save:&error];
はたぶん、それは更新です:非表示フラグが変更されました。したがって、私はNSFetchedResultsControllerの代理人がそのセルを更新したい、そしてそれを削除したいという状況に陥っています...述語が今このオブジェクトに対応していないので...その音が非常にそうである...
データを挿入/更新するコードを投稿できますか? –
実際にjson配列を解析してループを作成した後、nsmanagedobjectsの束を簡単に作成するだけです。特別なことは何も起こっていません。もしあなたが私のBitBucketレポへのアクセス権を与えたら?多分この1つのセルの2つのアニメーション...私はちょうど考えていた、私の更新された質問を確認してください。ありがとう。 – Daniel
ヘット・マーティン、あなたが言ったように、私の答えをチェックしてください。乾杯。 – Daniel