我有一个非常简单的应用程序,有几个视图控制器.第二个视图控制器中有一个MKMapView.它设置正确,功能正常.问题是,每次加载它的视图时,内存使用量会跳跃~30mb,并且永远不会回落,所以每次进入视图时它都会继续跳跃并最终变得超高.当我离开控制器时我尝试删除地图视图:
override func viewWillDisappear(animated: Bool) {
map.removeFromSuperview()
}
Run Code Online (Sandbox Code Playgroud)
但它对记忆没有任何影响.地图视图委托设置为其视图控制器.
我尝试使用Xcode仪器检查泄漏,但没有找到任何东西.
有谁知道如何解决这一问题?
谢谢
编辑:添加这似乎工作:
func removeNastyMapMemory() {
map.mapType = MKMapType.Hybrid
map.delegate = nil
map.removeFromSuperview()
map = nil
}
override func viewWillDisappear(animated: Bool) {
removeNastyMapMemory()
}
Run Code Online (Sandbox Code Playgroud) 我有一个带注释的mapView,显示标题和副标题.字幕有时长于注释的宽度,所以我想知道我是否可以使它们成为多线?它到目前为止编码如此:
func annotate(newCoordinate, title: String, subtitle: String) {
let annotation = MKPointAnnotation()
annotation.coordinate = newCoordinate
annotation.title = title
annotation.subtitle = subtitle
self.map.addAnnotation(annotation)
}
Run Code Online (Sandbox Code Playgroud)
然后我有几个选项
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {...}
Run Code Online (Sandbox Code Playgroud)
这里没有关系.
是否可以制作自定义注释视图?我尝试了几件事,但没有任何效果.我能得到的最接近的是添加一个按钮来分别显示较长的字幕,但我宁愿把它放在注释中.
可能吗?