0

iPhone用のサーバーベースのアプリを開発しました。しかし、クライアントの要件とサーバー側での過負荷を避けるために、ローカル エンドにデータを保存する必要があります。すべてテキストで、サイズは通常 2 ~ 4 MB です。 このために、sqlite や CoreData の代わりにNSUserDefaultsを使用しています。このアプリは、開発中および開発後のテストで約 2 ~ 3 か月間正常にテストされており、iPhone 3G から iPhone 4S までのあらゆる種類の iPhone デバイスで、データ ストレージ、更新、または削除にいかなる種類の矛盾も見られませんでした。

現在、ライブ アプリに不整合の問題があります。ユーザーが約 15 ~ 20 分間画面上でアプリをアイドル状態のままにし、ホーム ボタンを押さないと、アプリがバックグラウンドにないことを意味します。この場合、データが失われるようです。ただし、アプリを更新するとすぐに、その場合はデータが再び表示され、アプリは再び正常に機能し始めます。ここに主な問題があります。リフレッシュしているときに、サーバーから新しいデータを取得するだけで何もしていないということです。次に、アプリが更新され、すべてのレコードが表示され、正常に機能します。

約 3 日間、問題を特定しようとしましたが、私のデバイス (iPhone 4S) では発生していません。私が考える限り、それは古いデバイスに問題があるようです。

以前のテストでは、これは古いデバイスでも新しいデバイスでも発生しませんでした。私の質問は -

a) これは私のコーディングの矛盾ですか?

b) NSUserDefaults は、ライブ アプリのデータベース管理には信頼できませんか?

c) NSUserDefaults に関連するデバイス バージョン固有の問題ですか?

NSUserDefaults で問題に直面した/直面している人はいますか??

このためにできることを提案するか、次のバージョンで sqlite または CoreData を使用してすべてのデータベース作業をやり直す必要があることを教えてください。

とにかく、これは非常に重要であり、修正する必要があります。

どんな助けでも事前に感謝します。

4

1 に答える 1

0

あなたへの私の提案として、Sqlite データベース統合を導入してください。これは、データ ストアのサイズが短く、Sqlite よりも優れているが、Sqlite またはコアデータを使用しなければならない多数のデータに対応していないためです。

そのため、Sqlite データとコアデータを使用することをお勧めします。

于 2012-09-28T11:44:21.967 に答える