MKMapView 每次加载它的视图时都使用大量内存
MKMapView using a lot of memory each time i load its view
我有一个非常简单的应用程序,有几个视图控制器。第二个视图控制器中有一个 MKMapView。它设置正确,运行良好。问题是,每次我加载它的视图时,内存使用量都会跳跃 ~30mb,并且永远不会下降,所以每次我进入视图时它都会不断跳跃并最终变得非常高。
当我离开控制器时,我尝试删除地图视图:
override func viewWillDisappear(animated: Bool) {
map.removeFromSuperview()
}
但对内存没有任何影响。地图视图委托设置为其视图控制器。
我尝试使用 Xcode 仪器检查泄漏,但没有找到任何东西。
有谁知道如何解决这个问题?
谢谢
编辑:
添加这个似乎有效:
func removeNastyMapMemory() {
map.mapType = MKMapType.Hybrid
map.delegate = nil
map.removeFromSuperview()
map = nil
}
override func viewWillDisappear(animated: Bool) {
removeNastyMapMemory()
}
这不是 Swift 问题,而是来自 Objective-C 天。处理此问题的可能方法取决于应用的情况和行为。
如果您多次(或多次)使用地图,请只创建它的一个(共享)实例。您可以随时使用它。
或者,如果您只使用一次,请尝试此处的解决方案,。这可能会有所帮助。减少一点。但不是全部。
我有一个非常简单的应用程序,有几个视图控制器。第二个视图控制器中有一个 MKMapView。它设置正确,运行良好。问题是,每次我加载它的视图时,内存使用量都会跳跃 ~30mb,并且永远不会下降,所以每次我进入视图时它都会不断跳跃并最终变得非常高。 当我离开控制器时,我尝试删除地图视图:
override func viewWillDisappear(animated: Bool) {
map.removeFromSuperview()
}
但对内存没有任何影响。地图视图委托设置为其视图控制器。
我尝试使用 Xcode 仪器检查泄漏,但没有找到任何东西。
有谁知道如何解决这个问题?
谢谢
编辑: 添加这个似乎有效:
func removeNastyMapMemory() {
map.mapType = MKMapType.Hybrid
map.delegate = nil
map.removeFromSuperview()
map = nil
}
override func viewWillDisappear(animated: Bool) {
removeNastyMapMemory()
}
这不是 Swift 问题,而是来自 Objective-C 天。处理此问题的可能方法取决于应用的情况和行为。
如果您多次(或多次)使用地图,请只创建它的一个(共享)实例。您可以随时使用它。
或者,如果您只使用一次,请尝试此处的解决方案,。这可能会有所帮助。减少一点。但不是全部。