0

CoreData アプリの 1 つを有効にする iCloud のプロトタイプを作成しようとしているときに iCloud の痛みを経験した人として、Simperium は非常に有望に見えますが、それがいくつかの鋭いエッジをどのように処理するかを見ることに興味があります.

私が遭遇した 1 つの問題は、アプリケーションの起動時にブートストラップ データを適切に処理する方法でした。ユーザーが初めてアプリを起動すると、いくつかのデフォルト データが CoreData データベースに読み込まれます。ユーザーが最初に iPhone でアプリを起動し、その後 iPad でアプリを起動すると、同期のために両方のデバイスでブートストラップ データが複製されてしまいます。iCloud では、解決策は iCloud マージ プロセスにフックすることでした。

これを Simperium でどのように処理しますか?

4

1 に答える 1

0

これを行うには、少なくともいくつかの方法があります。

simperiumKeyシードされたオブジェクトごとにハードコーディングできます。たとえば、ノート アプリで、すべての新規ユーザーがウェルカム ノートを受け取った場合、simperiumKeyofを使用してそのノートをローカルに作成できますwelcomeNote。これにより、そのユーザーのアカウント (任意のデバイス) にウェルカム ノートが 1 つだけ存在することが保証されます。このアプローチでは、冗長なデータ転送が発生する可能性があるため、大量のシード データがない場合に最適です。一方、このアプローチは、新しいユーザーがアプリを最初に起動したときにオフラインであっても、すぐにデータを利用できるようにする場合に適しています。

Simperium では、サーバー プロセスを使用するオプションもあります。アカウントの作成時にコードを実行する Python または Ruby リスナーを使用して、新しいユーザー アカウントにデータをシードできます。これは大量のデータがある場合に適した方法ですが、シードされたデータが転送される前にユーザーがオンラインである必要があるという欠点があります (もちろん、転送自体には時間がかかります)。

これらのアプローチには微妙な点があります。例を使用した最初のアプローチでは、welcomeNoteユーザーが を削除しwelcomeNote、後でアプリを再インストールした場合、welcomeNoteはローカルで作成されているため、復活します (ただし、複製されることはありません)。多くの場合、これは許容されます。2 番目のアプローチでは、welcomeNote一度だけシードされるため、アプリを再インストールしても復活することはありません。

于 2012-08-30T18:04:47.363 に答える