MSDKUI 2.1.1 Swift - 内存问题
MSDKUI 2.1.1 Swift - Memory issue
我进入一个视图控制器,其中我有以下视图:
NMA地图视图
制导机动视图
指导速度视图
指导限速视图
GuidanceEstimatedArrivalView 导航
旅行时间面板
GuidanceNextManeuverView
也是一个 NMAMapLoaderDelegate
我创建了一个地图路线并在显示 ViewController 时显示它。
我使用后退按钮离开这个视图控制器 - 这都在导航控制器中,当我离开它时应该释放视图控制器,但是它保留在内存中。每次我进入这个视图控制器时,我都会创建一个新的视图控制器,而旧的视图控制器在内存中仍然处于活动状态。因此,在大约第 10 次加载带有 NMAMapView 的视图控制器后,应用程序因内存不足而崩溃。
是否有我应该调用的方法或我应该做的事情来确保在我退出时释放此视图控制器?
还是我应该重新使用视图控制器?
我发现这个问题来自一些 HERE 函数示例代码 "findCurrentPosition()"
private func findCurrentPosition() {
guard positioningManager.startPositioning() else {
print("Error: Positioning failed to start.")
return
}
// Subscribe to position updates.
var token: NSObjectProtocol?
token = NotificationCenter.default.addObserver(
上面的"token"是一个很强的参考。为了修复它,我将其更改为弱引用
token? = NotificationCenter.default.addObserver(
我进入一个视图控制器,其中我有以下视图: NMA地图视图 制导机动视图 指导速度视图 指导限速视图 GuidanceEstimatedArrivalView 导航 旅行时间面板 GuidanceNextManeuverView 也是一个 NMAMapLoaderDelegate 我创建了一个地图路线并在显示 ViewController 时显示它。
我使用后退按钮离开这个视图控制器 - 这都在导航控制器中,当我离开它时应该释放视图控制器,但是它保留在内存中。每次我进入这个视图控制器时,我都会创建一个新的视图控制器,而旧的视图控制器在内存中仍然处于活动状态。因此,在大约第 10 次加载带有 NMAMapView 的视图控制器后,应用程序因内存不足而崩溃。
是否有我应该调用的方法或我应该做的事情来确保在我退出时释放此视图控制器? 还是我应该重新使用视图控制器?
我发现这个问题来自一些 HERE 函数示例代码 "findCurrentPosition()"
private func findCurrentPosition() {
guard positioningManager.startPositioning() else {
print("Error: Positioning failed to start.")
return
}
// Subscribe to position updates.
var token: NSObjectProtocol?
token = NotificationCenter.default.addObserver(
上面的"token"是一个很强的参考。为了修复它,我将其更改为弱引用
token? = NotificationCenter.default.addObserver(