在MKMapView中释放缓存

时间:2018-11-13 20:52:09

标签: ios caching mkmapview

我有一个基于地图的应用程序,该应用程序使用MKMapView作为主视图。 当我的iPad连接到Xcode时,在调试导航器中可以看到,在地图上缩放和平移时,内存使用量一直在增加。我想iOS正在缓存地图图块,但是在销毁MkMapView之前不会释放它们。

有什么方法可以强制MkMapView清除所有缓存?

如果我继续平移和缩放,则当内存使用量为3Gb时,我的应用最终崩溃。

1 个答案:

答案 0 :(得分:0)

func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
    URLCache.shared.removeAllCachedResponses()
}

清除收件人的缓存,删除所有存储的缓存URL响应。


您是否在注释视图上设置重用标识符? (这意味着系统可以分离这些视图,并且一次只能在内存中保留少量视图。这还可以提高滚动性能,因为滚动将重复使用分离的视图。)

使用此方法获取要重用的注释视图:

// Used by the delegate to acquire a reusable annotation view, or create a new view for registered class, in lieu of allocating a new one.
    open func dequeueReusableAnnotationView(withIdentifier identifier: String) -> MKAnnotationView?