1

私のサービスは一度に最大 500 個のオブジェクトを返します。データ量が 60 個のオブジェクトを超えると iPhone アプリケーションがクラッシュすることに気付きました。この問題を回避するために、上位 40 件の結果のみを返すクエリを実行していますが、データ全体を返すよりも遅いです。

  1. ベスト プラクティスとは何ですか? また、より多くのオブジェクトを取得するにはどうすればよいですか?
  2. iPhoneのアプリケーションに割り当てられるメモリの最大量は何ですか?それを拡張する方法はありますか?
  3. サーバーからいくつのオブジェクトを取得する必要がありますか
  4. NSCache にはいくつ保存できますか?
4

1 に答える 1

0

おそらく、NSCache の代わりに NSData を使用してサービスからデータを取得する必要があります。

NSCache は一時オブジェクト用ですが、NSData はアプリケーション間で (サービスからアプリへ) データを移動するために使用されます。

Apple による NSCache の説明:

NSCache オブジェクトは、NSDictionary クラスと同様に、キーと値のペアを格納するコレクションのようなコンテナーまたはキャッシュです。多くの場合、開発者はキャッシュを組み込んで、作成に費用がかかる一時的なデータを含むオブジェクトを一時的に格納します。これらのオブジェクトを再利用すると、値を再計算する必要がないため、パフォーマンスが向上します。ただし、オブジェクトはアプリケーションにとって重要ではなく、メモリが不足している場合は破棄できます。破棄された場合、それらの値は必要に応じて再計算する必要があります。

Apple による NSData の説明:

*NSData とその変更可能なサブクラスである NSMutableData は、バイト バッファー用のオブジェクト指向ラッパーであるデータ オブジェクトを提供します。データ オブジェクトを使用すると、単純に割り当てられたバッファー (つまり、ポインターが埋め込まれていないデータ) が Foundation オブジェクトの動作を引き継ぐことができます。

NSData は静的データ オブジェクトを作成し、NSMutableData は動的データ オブジェクトを作成します。NSData と NSMutableData は通常、データ ストレージに使用され、データ オブジェクトに含まれるデータをアプリケーション間でコピーまたは移動できる分散オブジェクト アプリケーションでも役立ちます。*

于 2014-03-18T14:22:54.390 に答える