为了在Swift中向地图视图添加注释,我有下面的代码可以正常工作:
让myLocation = CLLocationCoordinate2D(55.55,-77.77)
let annotation = MKPointAnnotation()
annotation.coordinate = myLocation
annotation.title = "Some place"
map.addAnnotation(annotation)
但是我的问题是,map.addAnnotation的类型为“MKAnnotation”,而不是“MKPointAnnotation”,如下所示。
map.addAnnotation(注释:MKAnnotation)
如果我创建一个MKAnnotation的实例,即
让注释= MKAnnotation()
我收到一个错误“无法构造'MKAnnotation',因为它没有可访问的初始化程序”,并且无法设置诸如注解,坐标或标题等属性。
那为什么不起作用
让myLocation = CLLocationCoordinate2D(55.55,-77.77)
let annotation = MKAnnotation() //error
annotation.coordinate = myLocation //property not accessible
annotation.title = "Some place" //property not accessible
map.addAnnotation(annotation)
最佳答案
MKAnnotation
是协议,而不是类,因此您不能直接实例化它,只能实例化符合它的类。 MKPointAnnotation
是一个类,并且确实符合MKAnnotation
协议,因此您可以实例化并直接使用它。
关于ios - Swift:为什么使用MKPointAnnotation而不使用MKAnnotation。无法构造“MKAnnotation”错误,因为它没有可访问的初始化程序。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34078673/