0

Recipes サンプル アプリのコードを使用してライブラリ スタイルの SQLite iOS アプリを作成しましたが、動作します。1 つのデバイスの更新は、(最終的に) 同じアプリを実行している他のすべてのデバイスに確実に伝達されます。私は 1 時間に 1 時間に複数のイベントでそれをテストしてきましたが、すべてのログ トランザクションはすべてのデバイスに到達します。ただし、更新が反映されるまでの時間は大きく異なります。アプリを立ち上げてそのままにしておくと、クラウドが更新トランザクションをアプリに送信するまでに比較的長い時間がかかる可能性があるため、画面に表示されているものは同じ長い間古いデータのままです。さらに悪いことに、データが古くなっている兆候はありません。

ただし、アプリに変更をクラウドに投稿させると、クラウドからの更新は比較的すぐに反映されます。これは、無意味な変更を定期的にデータベースに投稿するハックを組み込むことができることを示唆していますが、それでもすべての変更を受け取ったかどうかはわかりません。

最初の質問: トランザクションを強制的に伝播させるメソッドは存在しますか? このスレッドはそうではないことを示唆しています。

2 番目の質問: ローカル データベースが古くなっているかどうかを検出する方法はありますか? クラウド コピーを絶え間なくくすぐりたくはありませんが、データベースが最新になるまでときどきそうするのは、それほど悪い考えではないかもしれません。

4

1 に答える 1

0

1) そのような方法を見つけたら、私に知らせてください。

2)ここに同じもの。現在実行中のiCloudアプリのインスタンスが最初のインスタンスではないかどうかを検出する信頼できる方法さえ見つけられませんでした。つまり、最初のプッシュが受信されるまで、他のインスタンスがすでに更新をiCloudに送信しています(不明な時間がかかる場合があります)。

于 2012-02-13T01:29:18.877 に答える