我有一个基于地图的应用程序,该应用程序使用MKMapView作为主视图。 当我的iPad连接到Xcode时,在调试导航器中可以看到,在地图上缩放和平移时,内存使用量一直在增加。我想iOS正在缓存地图图块,但是在销毁MkMapView之前不会释放它们。
有什么方法可以强制MkMapView清除所有缓存?
如果我继续平移和缩放,则当内存使用量为3Gb时,我的应用最终崩溃。
答案 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?