1

したがって、基本的に次のことを行う iOS アプリを開発しています。iPhone ではUITabBarController5 つのタブがあり、iPad では右側に がありUISplitViewController、左側に 4 つのタブがあります。アプリはARCを使用しています。MKMapViewUITabBarController

観光スポットについて話しているとしましょう。
ユーザーが現在いる都市に応じて、アプリはこの都市のすべての観光スポットをデバイスにダウンロードします。特定のサイトがダウンロードされると、ローカル データベースに保存されるため、ユーザーは再度ダウンロードする必要はありません。ユーザーが別の都市を検索すると、この都市のすべての観光スポットがダウンロードされます。等々。保存されたすべての観光スポットは、tableView 内または mapView に一覧表示され、都市別に並べ替えられます。

サイトは次のもので構成されます。

  • 1~10枚の画像
  • メタ情報 (タイトル、サブタイトル、名前、説明、住所、都市、国、評価、ID、緯度、経度...)
  • 1-n のカテゴリ / タグに属しています

このアプリを使用すると、ユーザーは新しい名所を作成し、写真を撮り、メタ情報を入力して、それを私の Web サーバーにアップロードできます。

少数のサイトのみがダウンロードされている限り、これはすべて正常に機能しています。40 以上のサイトをローカルに保存すると、メモリ警告が表示され、アプリが終了します。問題は、このアプリが数百もの非常に膨大な数のサイトを閲覧することを意図していることです。

このようなメモリの問題を処理するためのいくつかのテクニックを知りたいと思います。

私の問題は、アプリの開始時に、ローカルに保存されたすべてのサイトが、tableView または mapView のデータソースとして配列に読み込まれていることだと思います。でも見せたいからには、そうするしかない。

他のアプリケーションは、複数の画像や多数のメタ情報などで構成される膨大な数のカスタム オブジェクトをどのように処理しますか? この種の問題を処理するためのベスト プラクティスはありますか?

事前にどうもありがとうございました!

4

3 に答える 3

1

表示したいデータの一部の情報のみをロードする必要があります。たとえば、ID、タイトルなど、初期情報の入力に使用するものと、画像などの残りの情報はバックグラウンドでロードする必要があります。準備ができたら更新してください。たとえば、次の回答をご覧ください。

UICollectionView のスクロールが遅い

また、データが画面に表示されていないときに、すべての情報にとどまらないように注意する必要があります。

于 2013-05-25T21:00:59.367 に答える