1

iCloud を使用して CoreData ファイルを保存し、このデータを iPhone と iPad 間で共有するアプリを開発しています。NSPersistentStoreDidImportUbiquitousContentChangesNotification を介して、他のデバイスで行われたデータ更新を受信すると、他のデバイスに有効な変更があり、更新が送信されたにもかかわらず、更新が空になることがあります。

$0 = 0x1f5c64e0 NSConcreteNotification 0x1f5c64e0 {name = com.apple.coredata.ubiquity.importer.didfinishimport; object = <NSPersistentStoreCoordinator: 0x1f553130>; userInfo = {
deleted = "{(\n)}";
inserted = "{(\n)}";
updated = "{(\n)}";
}}

これは常に発生しているわけではありません。完全にランダムに発生しているように見えますが、発生した場合、両方の ManagedObjects (iPhone と iPad から) が異なるデータを持っています。

なぜこれが起こっているのか、このコレクションを空にする意味を知っている人はいますか? これはバグか何かですか?

Apple に連絡した後の更新

さて、私は DTS サービスを通じて Apple に連絡し (サブスクリプションには毎年 2 回のテクニカル サポート リクエストが含まれています)、ここに書いたものとほぼ同じテキストを彼らに送信した後、次の回答を受け取りました。

ジョルディさん、こんにちは。

Apple デベロッパ テクニカル サポートにお問い合わせいただきありがとうございます。当社のエンジニアがお客様のリクエストを検討した結果、これはバグ レポートとして処理するのが最善であると判断しました。

http://bugreport.apple.comの Bug Reporter ツールを使用して、この問題に関する完全なバグ レポートを送信してください。

だから、私は代替案を探し始めます...もし見つけたら、私はあなたに最新情報を提供します:(

4

1 に答える 1

2

これはバグです。これは、iOS の今後のリリースで修正される場合と修正されない場合があります。で検索するNSPersistentStoreDidImportUbiquitousContentChangesNotificationと、人々がすでに試したクレイジーな解決策が見つかるかもしれません。通知は不正な形式で送信されているように見えますが、通知を 1 回しか受信しないため、正しいデータを含む通知を受信することはなく、実際にはデータが失われます。個人的には、これ (そしてこれが最終的なストローでした) と、他の多くの扱いにくい問題が原因で、Apple の方法を使用して iCloud 経由で Core Data 同期を機能させようとする私の試みは失敗に終わりました。私はまったく別のルートをたどったので、それが修正されるかどうかはわかりません.

于 2013-08-06T21:51:08.380 に答える