Я расширил класс MKPointAnnotation
следующим образом:
class CustomPointAnnotation: MKPointAnnotation{
let eventID: Int
let coords: CLLocationCoordinate2D
var title: String? // error here
let location:String
init(eventID:Int, coords:CLLocationCoordinate2D, location:String, title:String?) {
self.eventID = eventID
self.coords = coords
self.title = title
self.location = location
super.init()
}
}
Я получаю сообщение об ошибке:
Cannot override with a stored property 'title'
(Полагаю, я получу ту же ошибку, если переименуюmember coords
to coordinate
).
Итак, я попробовал следующее:
private var _title:String?
override var title: String? {
get { return _title }
set { _title = newValue }
}
, но, добавив self.title = title
в тело init
, я получаю:
'self' used in property access 'title' before 'super.init' call
Если я перейду super.init()
выше, я получаю два вида ошибок:
Property 'self.eventID' not initialized at super.init call (1 error)
Immutable value 'self.coords' may only be initialized once (repeated for every property)
Как правильно объявить свойство title
?Есть ли возможность переопределить это?Я нашел много вопросов по этой теме, но ни одного примера с расширением встроенного класса.Любая помощь приветствуется