我想创建一个 GMSMarker 的子类。它使用一个属性进行初始化,即position: CLLocationCoordinate2D. 它还具有可以像这样设置的属性
let position = CLLocationCoordinate2DMake(51.5, -0.127)
let london = GMSMarker(position: position)
london.title = "London"
london.icon = UIImage(named: "house")
london.map = mapView
Run Code Online (Sandbox Code Playgroud)
我想添加新属性 rating
我试过这样
class Marker: GMSMarker {
var rating:Int
init(rating: Int){
self.rating = rating
super.init()
}
}
Run Code Online (Sandbox Code Playgroud)
但它不允许rating使用点符号为属性赋值
我怎样才能做到这一点 ?
更改如下:
var rating : Int = 0
convenience init(rating: Int){
self.init()
self.rating = 2
}
Run Code Online (Sandbox Code Playgroud)
Swift 要求在创建实例之前完全初始化所有属性。
此外,当您编写便利初始值设定项时,就像您在此处所做的那样,便利初始值设定项只能调用同一类中的另一个便利初始值设定项或指定的初始值设定项。