【发布时间】:2011-11-04 06:45:51
【问题描述】:
我正在尝试加载地图区域,并且在第二次或后续加载时未调用 MKMapView 委托方法。没有任何委托方法,即
- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;
曾经被调用过。调用的唯一方法是
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
看来ios4正在缓存地图视图瓦片图像。
我在 MKMapViewDelegate 协议参考文档中找到了这些行。突出显示的行是我的问题。
当与当前请求关联的地图图块已加载时调用此方法。 当新的可见区域滚动到视图中并且图块尚不可用时,请求地图图块。也可以为当前不可见的地图部分请求地图瓦片。例如,地图视图可能会根据需要立即加载当前可见区域周围的图块,以处理用户的小平底锅。
我需要在地图加载后执行某些操作,但由于没有调用上述委托方法,我无法执行所需的功能。任何人都可以提出解决方案以清除缓存或为此提供替代解决方案吗?我已经尝试过使用here 和this 描述的方法,但我仍然无法让代码正常工作。
【问题讨论】:
-
您究竟想使用这些委托方法实现什么目标?
-
我需要在 didFinishLoadingMap 中抓取地图,并且这个委托方法只被调用一次,在缓存切片后它既不调用 didfinish 也不调用 failLoad 委托。我现在该怎么办?
-
我已经提交了与此相关的 Apple Bug #13774496,并创建了一个示例应用程序来显示 iOS6 上仍然存在该问题:github.com/iwasrobbed/MapKitDelegateBug
标签: objective-c ios4 mkmapview