iOS でマップに注釈を追加する際にパフォーマンス上の問題があります (標準のマップキット メソッドを使用するため、Apple マップを使用します)。メソッドを使用して、大量の注釈 (10000 以上) を一括で追加しようとしてい(void)addAnnotations:(NSArray *)annotations
ます。注釈オブジェクトは特別なものではなくMKAnnotation
、次のように定義されたコンストラクタのみで実装される非常に基本的なクラスです。
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
if(self = [super init]) {
title = ttl;
coordinate = c2d;
}
return self;
}
テストするために、読み込み時に基本的なマップ ビューに注釈を追加するだけの基本的なアプリを作成しました。iPad 2 で約 6 ~ 7 秒かかります。非常に許容できるパフォーマンスです。ただし、同じ基本的なマップ ビューを独自のアプリケーションに埋め込むと、事態は複雑になります。まったく同じロジックですが、アプリで実行すると、すべての注釈を読み込むのに約 50 秒かかります。
私のアプリには、互いにたくさんのビューがあります。問題を特定するために、マップ ビューを最下位レベルから最上位レベルに到達するまで埋め込み始めました。各ステップでプロファイリングを行って、パフォーマンスに役立つかどうかを確認しましたが、結果は表示されません。まだ約 50 秒です。現在、私のアプリは基本的に、注釈を読み込んで最上位のレベル マップ ビューのみに追加するだけで、理想的にはスタンドアロン アプリと同じですが、なんらかの理由で注釈のレンダリングに約 50 秒かかっています。私が持っている唯一の合理的な説明は、マップのパフォーマンスを何らかの形で妨げるアプリ設定の一部に関するものです. 私は役に立たない解決策を考え出すためにたくさんの読書をしました。
ここで何が問題なのか、誰にもアイデアはありますか? ありがとう!