私はこの問題で本当に苦労しています:コアデータが非公開でオブジェクトを更新しない
オブジェクトがコアデータに保存されています。私はそのオブジェクトのいくつかのプロパティを更新するメソッドを持っています。私はそのオブジェクトのマネージオブジェクトコンテキストをobj.managedObjectContext
から使用しています。
2つのプロパティが変更されました:obj.pending = YES
およびobj.body = 'text'
です。 次のように私は当時コアデータにオブジェクトを保存します。
if ([managedObjectContext save:&saveError]) {
[persistenceController saveContextAndWait:YES completion:^(NSError *error) {
[OfflineManager postData];
}];
}
postData
方法はobj.pending == YES
コアデータからすべてのオブジェクトを取得し、データをポストします。 managedObjectContextの型はNSPrivateQueueConcurrencyType
です。
私の問題は次のとおりです。obj.pending
は更新されているようですが、obj.body
はそうではありません。私がアプリケーションをポストして再起動する前に、アプリケーションにブレークポイントを追加すると、obj.body
が正しく更新されます。
これがコンテキストの問題である場合、オブジェクトプロパティの変更の一部が表示されるのはなぜですか?
私はこれを何時間もハッキングしてきましたが、どんな助力も最も感謝しています。
ありがとう
なぜ店舗を明示的に保存しますか?ストアに接続されている(他のコンテキストの子ではない)マネージオブジェクトコンテキストは、あなたのためにそれを行います。 – Avi
私はMDMCoreDataを使用しています - 私のアプリケーションで私のCDを管理する軽量コアデータクラスのコレクション。 – mrcurious
@Aviこれが問題になると思いますか? – mrcurious