关于在 iOS 中向地图添加注释(使用标准 mapkit 方法 - 因此使用 Apple 地图),我遇到了性能问题。(void)addAnnotations:(NSArray *)annotations
我正在尝试使用该方法批量添加大量注释(10000+) 。注释对象没有什么特别的 - 一个非常基本的类,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 秒。我唯一合理的解释是关于我拥有的一些应用程序设置以某种方式干扰了地图性能。我做了一堆阅读来提出一个无济于事的解决方案。
有人对这里可能出现的问题有任何想法吗?谢谢!