Я использую эту функцию для изменения местоположения маркера карты на основе выбора пользователя:
let annotation = MKPointAnnotation() //global reused annotation object
func setPin(mapView: MKMapView, longitude: Double, latitude: Double, title: String) {
annotation.coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
annotation.title = title
mapView.addAnnotation(annotation)
}
Координаты и заголовок неоднократно меняются, поэтому меня немного беспокоит, правильный ли это подход. Объект MKPointAnnotation создается только один раз как глобальный, и только его содержимое обновляется при вызове функции setPin () . Пока что это работает без проблем, , кроме сбоя с симулятором, который иногда не обновляет / не рендерит заголовок.
Может ли это привести к утечкам? Возможно, я пропустил какие-либо шаги, чтобы освободить объект или удалить его с карты, прежде чем снова использовать его?
ТИА.