2012-02-12 8 views
0

レシピサンプルアプリのコードを使用してライブラリスタイルのSQLite iOSアプリケーションを構築しました。これは動作します。同じアプリ。私は一日中一時間に複数のイベントでそれをテストしており、すべてのログトランザクションはすべてのデバイスに届きます。ただし、更新が伝播する時間は非常に変動します。私がアプリを持ち上げて座っていると、クラウドがアプリに更新トランザクションを送るまでに比較的長い時間がかかる可能性があります。そのため、画面には同じ長時間の古いデータが残っています。さらに悪いことに、データが最新ではないという兆候はありません。私は、クラウドへの変更を投稿するアプリを引き起こした場合iCloudを介したSQLiteの更新伝播の待ち時間

は、しかし、クラウドから比較的すぐ下に伝播する更新されます。これは、データベースに無意味な変更を定期的に投稿するハックを入れることができることを示唆していますが、それでも私はすべての変更を受けたかどうかわかりません。

最初の質問:トランザクションを強制的に伝播させるメソッドは存在しますか? a This threadは示唆していません。

2番目の質問:ローカルデータベースが古いかどうかを検出する方法はありますか?私は絶え間なく雲のコピーをくすぐりたくはありませんが、今やってからデータベースが最新になるまでは、あまり良いアイデアではないかもしれません。

答えて

0

1)このような方法が見つかった場合は、私にお知らせください。

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

+0

私は、キー値クラウドポスティングを使用して、データベース内のコンテンツカテゴリが更新されたときと、どのUUIDによって更新されたのかを追跡し、その日付スタンプを使用して、最新の取引。 – Feldur

+0

この実験では、キー値データが実際のコアデータトランザクションよりも早く更新されたケースは見つかりませんでした。キーバリュー日付を記録するための私のアルゴリズムは、それらが時間内に、または同じログ内でさえシリアル化されている場合、データトランザクションの後に常に更新されるようなものです。その相関関係は、完全にもっともらしくありますが、明示的に文書化されたものではありません。 – Feldur

+0

あなたの結果を投稿していただきありがとうございます。 –

関連する問題