2016-11-30 7 views
0

私はコアデータを持つアプリを作った。ユーザーがデバイスを紛失したり交換したりするとどうなるでしょうか?彼らは新しいものを取得し、アプリを再インストールするとしましょう。iPhoneの外でデータを保存する

以前のデバイスでコアデータに保存されていたデータを取得するには、どのような方法が最適です。

あなたはこれについて考えていただけますか?

+0

これは、デバイスをiTunes/iCloudにバックアップする理由です。新しいデバイスを手に入れたら、デバイスのバックアップを復元して、すべてのデータを使ってすべてのアプリケーションを元に戻すことができます。 – rmaddy

+0

もしそうすれば、彼らはコアデータのものを手に入れることが正しいのですか? –

+0

これはデバイスバックアップのポイントです。これは、バックアップ時にデバイスにあったすべてのビットを取り戻すことです。開発用デバイスの1つで試してみてください。 – rmaddy

答えて

1

1つのデバイスと任意の代替デバイス(破損または紛失した場合)は、iTunesまたはiCloudのいずれかにバックアップするだけで十分です。その後、必要に応じてそのバックアップから復元することができます。これは、CoreDataだけでなく、あらゆるアプリケーションデータに適用されます。

アプリケーションには、CoreData永続ストアファイルを別の場所にコピーし、別の場所からロードする機能を含めることもできます。これは通常、単一のSQLiteデータベースファイルであり、デバイス間でコピーするのは簡単です。たとえば、「Documents」ディレクトリにコピーしてiTunesで取得したり、電子メールで送信したりできます。その後、どこかから読み込み、永続的なストアファイルの場所に書き込むことができます(CoreDataはそれを使用していません)。このアプローチは、iCloud/iTunesで取得したデバイス全体のバックアップとは独立した1つのアプリケーションのデータのポイントインタイムバックアップに役立ちます。また、ユーザーはアプリケーションデータセット全体を他のユーザーに送信したり、他のすべてのアプリケーションを含めてデバイス全体を復元することなく、特定の時点までアプリケーションデータを回復することもできます。

元の質問に答えることを願っています。コメントのフォローアップクエリの場合...

複数のデバイスが同じデータを同時に共有する場合は、CloudKit:https://developer.apple.com/icloud/があります。しかし、私はこれがCoreDataで正しく動作するかどうかはわかりません(私はそう思わない)。 (CoreData独自のiCloud同期はiOS 10では廃止予定です)

Realm:https://realm.io/などのサードパーティの代替製品もあります。 Realmは多くの開発者によって強く推奨されており、クロスプラットフォームです。しかし、それはCoreDataの代わりに、それと互換性がありません(あなたが求めているものではありません)。デバイス間のデータ同期のために、RealmはMac OS XまたはLinuxマシンのいずれかで、ユーザーのすべてのデバイスがアクセスできる必要があるデータ同期サーバー(「R​​ealm Mobile Platform」)をセットアップする必要がありますインターネットはいつでも可能です。

また、独自のソリューションを展開することもできますが、どうしてですか?

+0

シミュレータでcloudKitを使用できますか?どんなデバイスも持たないでください。 –

+0

最高のことを別の質問で尋ねます。 iCloudアカウントでシミュレータをセットアップできるかどうかによって異なりますが、私はそれを見ていません。シミュレータの[設定]アプリを確認します。 –

0

これがiCloudの目的です。 rmaddyのコメントによれば、コアデータデータベースをiCloudにバックアップすることができます。私はそれをしていないが、私はそれについて読んだ。

1

これを行う簡単な方法は、iCloud APIを使用し、すべてのデータをiCloudストレージに保存することです。この種のアプリでは非常に安全で安全です。

+0

iCloud APIを使用するための良いチュートリアルはありますか? –

+0

このリンクはあなたに役立つと思います.. http://www.appcoda.com/icloud-programming-ios-intro-tutorial/ –

関連する問題