0

追加、更新されたレコードがあります。次に、それらをサーバーと同期します。サーバーの応答によると、そのうちの1つが更新に失敗した場合は、そのNSManagedObjectを以前の値に戻したいと思います。調べてみると、UndoManagerはスタックとして機能しているので、Idのあるレコードを見つけられず、そのレコードを元に戻すことができません。

そして最後に、この問題について何を提案しますか?

4

1 に答える 1

0

独自のID属性を導入し、それをサーバーと同期することで、オブジェクトを追跡できます。これはしっかりした頑丈なデザインだと思います。私はこれを何度も問題なく使用しました。

Appleは各管理対象オブジェクトにobjectIDを提供していますが、これは実際には、さまざまな管理対象オブジェクトのコンテキスト間でデータの一貫性を確保することを目的としています。このIDを外部システムに「悪用」することはお勧めしません。

サーバーは(更新されなかったというメッセージとともに)古い値を提供し、ID属性を使用してレコードを検索してCoreDataストアに書き戻すことができます。よりきめ細かい変更と更新の管理のために、タイムスタンプ属性を使用することもできます。

于 2013-03-12T16:30:36.017 に答える