0

coredata を使用する iPhone アプリの作成が完了しました。今後のバージョンでは、iPhone アプリによって収集されたデータを表示できる iPad アプリを追加する予定です (さらに、それを変更して使用することもできます)。ユーザーにより多くの対話の可能性を提供します。

私の質問は、(iPhone に既にインストールされているアプリの) 既存のコアデータをクラウドに移動し、そのデータを iPad アプリケーションで読み取ることは可能ですか?

はいの場合: どこから始めればよいか、正しい方向を教えていただけますか?

いいえの場合: iPhone アプリで作成されたコアデータに iPad アプリでアクセスする別の方法はありますか?

4

1 に答える 1

3

Core Data のビルトイン iCloud サポートを使用する場合、使用しているデバイスの種類は関係なく、Core Data スタックが同じ方法で初期化されるだけです。すべての iOS デバイスまたは Mac で同じ iCloud ストアを使用でき、一方で作成されたデータを別のデバイスで読み取ることができます。

ただし、重要な詳細が 1 つあります。すでにデータ ストアがあり、iCloud サポートを追加した場合、それらの既存のレコードは自動的にクラウドに移行されません。iCloud はトランザクション ログに基づいて機能し、トランザクション ログは変更を保存したときにのみ作成されます。すぐに変更されない既存のデータはトランザクションを生成しないため、クラウドには移動しません。

iCloud を追加するときに既存のデータがある場合は、データを新しいデータ ストアに移行して、それらの既存のレコードのトランザクションを強制する必要があります。NSPersistentStoreCoordinatormigratePersistentStore:toURL:options:withType:error:メソッドを使用すると、これをかなり簡単に行うことができます。難しいことではありませんが、必要であることは必ずしも明らかではありません。

まず最初に、Apple の WWDC ビデオを iCloud で見ることをお勧めします。特に、WWDC 2012 のセッション 227、Using iCloud with Core Dataです。次に、細心の注意を払うことをお勧めします。現在のところ、Core Data の iCloud サポートは、Apple の API の中で最も信頼できるものとは言えません。

于 2013-01-13T22:53:08.170 に答える