0

iOS アプリのローカル バッキング ストアでオブジェクトを更新する際に問題が発生しています。オブジェクト(JSON形式)があるとしましょう

{
  attr1: 'Hello',
  attr2: 'World'
}

iOS アプリの対応する NSManagedObject には、NSString *attr1 と attr2 の 2 つの属性があります。この最初の JSON プッシュで、オブジェクトは attr1 と attr2 で正しい値 'Hello' と 'World' を取得します。バックエンド サーバーからの次のメッセージは、次の JSON を返します。

{
  attr1: 'Hello2'
}

これにより、オブジェクトの attr1 が「Hello2」に更新されますが、attr2 は同じままです (つまり、「World」)。これは無効にしてほしい。つまり、NSManagedObject を「更新」するのではなく、完全にリセットしたいのです。これを達成する方法はありますか?属性を明示的に無効にして NSManagedObjectContext を保存するなど、いくつか試してみましたが、この方法は持続しないようです。私は何か不足していますか?

4

1 に答える 1

1

あなたは正しいことをしています。「手動で」(または NSManagedObject サブクラス内でこれを自動化することにより) 無効化し、永続化するために保存します。

期待どおりの結果が得られない場合は、保存方法またはデータの表示方法にエラーがあるはずです。または、オブジェクトが表示される前に再度更新された可能性があります。

于 2013-06-04T22:12:22.863 に答える