Swift:无法分配给属性:“ reuseIdentifier”是仅获取属性

问题描述

我正在创建一个自定义的MKAnnotationView类,并试图找出它的初始化程序。到目前为止,我有这个:

class JumpSpotAnnotationView: MKAnnotationView {

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override init(annotation: MKAnnotation?,reuseIdentifier: String?) {
    super.init(annotation: annotation,reuseIdentifier: reuseIdentifier)
    self.annotation = annotation
    self.reuseIdentifier = reuseIdentifier
}

}

在最后一行“ self.reuseIdentifier = redirectIdentifier”处,出现错误“无法分配给属性:'reuseIdentifier'是仅获取属性”。我不完全了解这意味着什么或如何解决。如何正确地为reuseIdentifier创建初始化器?另外,作为附带说明,如果您感到慷慨,可以有人解释整个“必需的init”吗?我仍然很新,并且想了解它,但是文档实际上是空的。谢谢!

解决方法

由于您正在呼叫init,因此可以删除super.init(annotation: annotation,reuseIdentifier: reuseIdentifier)的最后两行。因此annotationreuseIdentifier已在您的超类(即init)的MKAnnotationView中进行了初始化,因此无需在子类中再次进行。