ここで奇妙な問題があります。NSManagedObjectで「更新」操作のコールバックを取得していませんが、そのエンティティタイプのコレクションに挿入または削除されたオブジェクトは、デリゲートコールバックをトリガーします。
質問をさらに進める前に、セットアップについてお知らせします。
NSFetchedResultsControllerが適切に構成されている。外部で変更されているプロパティが、このAppleドキュメントで要求されているfetchedResultsControllerのソートキーではないことを確認してください。
オブジェクトの状態が変更されると更新が報告されますが、変更された属性はソートキーの一部ではありません。
これらの変更が行われている管理対象オブジェクトのコンテキストは1つだけです。
挿入と削除の操作がデリゲートに報告されているので、更新操作について何か怪しいことがあると思います
RKLogsを使用してRestkitコードをドリルダウンし、マッピングが正確に行われる場所と、coredataオブジェクトが更新されている場所を確認して、更新デリゲートコールバックを取得しない理由を調べました。
class RKManagedObjectMappingOperation
-performMappingメソッドで、Blake Watters氏は、更新時にMOCコールバックがトリガーされない理由を文書化しました。
- (BOOL)performMapping:(NSError **)error
{
BOOL success = [super performMapping:error];
if ([self.objectMapping isKindOfClass:[RKManagedObjectMapping class]]) {
/**
NOTE: Processing the pending changes here ensures that the managed object context generates observable
callbacks that are important for maintaining any sort of cache that is consistent within a single
object mapping operation. As the MOC is only saved when the aggregate operation is processed, we must
manually invoke processPendingChanges to prevent recreating objects with the same primary key.
See https://github.com/RestKit/RestKit/issues/661
*/
[self connectRelationships];
}
return success;
}
しかし、私は自分の人生のためにこれを修正する方法を理解することはできませんか?Cozそれは意図的に行われたのですか?
誰かが同じ問題に直面しましたか?どうすれば修正できますか?
ありがとう、Raj Pawan