Я хочу получить доступ к свойству родительского класса аннотации, который я написал, чтобы проверить его значение.Доступ к родительским свойствам
Annotation.swift
enum AnnotationType: Int {
case AnnotationDefault = 0
case AnnotationAED
case AnnotationResponder
case AnnotationIncident
}
class Annotation: NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var title: String?
var subTitle: String
var type: AnnotationType
init(coordinate: CLLocationCoordinate2D, title: String, subTitle: String, type: AnnotationType) {
self.coordinate = coordinate
self.title = title
self.subTitle = subTitle
self.type = type
}
func getType() -> AnnotationType {
return self.type
}
}
AEDAnnotation.swift
class AEDAnnotation : Annotation {
let aed: AED
init(aed: AED) {
self.aed = aed
super.init(coordinate: aed.coordinate, title: aed.street, subTitle: aed.owner, type: aed.annotationType)
}
func getAnnotationType() -> AnnotationType {
return super.getType()
}
}
создать аннотацию, как это:
let annotation = AEDAnnotation.init(aed: aed)
self.annotationArray.append(annotation)
если цикл I через массив, я видеть, что там есть действительные AEDAnnotations. Но почему я не могу получить доступ к базовому свойству Annotation.swift
, о котором я прошу.
for item in self.annotationArray {
print(item.getType)
}
Это не работает. Но как я могу получить доступ к свойству type
из Annotation.swift
Сообщение об ошибке я получаю это: Value of type 'MKAnnotation' has no member 'getType'
Вы должны иметь доступ к свойству типа родительского класса на основе вашего кода. Вы говорите, что он не работает, но не дает ошибки, как он не работает? –
Я добавил ошибку на вопрос. Я смущен, почему это элемент типа 'MKAnnotation', где я ожидаю, что он будет иметь тип AEDAnnotation. Когда я печатаю описание 'item', он корректно показывает' AEDAnnotation' как элемент массива. – sesc360
Да, это немного странно. Ваш массив заполняется где угодно, кроме двух строк кода, которые вы включили в свой вопрос? –