我有一个抽象类
find.limit(1).first
我希望子类能够为class AbstractDevicePrimaryAnnotationView: MKAnnotationView {
let maskImage:UIImage = UIImage()
var shape:CALayer
override init(annotation: MKAnnotation?, reuseIdentifier: String?) {
// init mine
self.shape = CALayer()
// init parents
super.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
// additional setup
self.layer.addSublayer(self.shape)
self.shape.mask = CALayer()
self.shape.mask?.contents = self.maskImage.CGImage
}
}
var提供不同的(和实际的)值。但试着为我的生活,似乎没有任何工作。
maskImage
我已尝试class SubclassAnnoationView: AbstractDevicePrimaryAnnoationView {
override let maskImage:UIImage! = UIImage(named: "mapValvePrimaryAnnotationMask")!
}
,let
,var
。似乎没什么用。我收到各种编译器错误。我可以把它变成lazy var
,但这似乎是一个警察。难道没有办法让子类指定自己的常量/静态值吗?希望这是一个惯用的。
答案 0 :(得分:0)
你可以尝试
var maskImage: UIImage {
return UIImage()
}
然后每个子类都做
override var maskImage: UIImage {
return //whatever image here
}