Ответ 1
- Все методы инициализации в Swift должны быть просто "init"
- MKAnnotation требует, чтобы объект наследовал от NSObjectProtocol. Чтобы сделать это, вы должны наследовать свой класс из NSObject
- Вы должны объявить, что ваши свойства соответствуют параметрам протокола MKAnnotation
- Вы не должны объявлять свои параметры как неявно отключенные опционы, если вам действительно не нужно. Пусть компилятор проверяет, является ли что-то нуль вместо того, чтобы бросать ошибки времени выполнения.
Это даст вам результат:
class MapPin : NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var title: String?
var subtitle: String?
init(coordinate: CLLocationCoordinate2D, title: String, subtitle: String) {
self.coordinate = coordinate
self.title = title
self.subtitle = subtitle
}
}