gpt4 book ai didi

ios - Swift:为什么是 MKPointAnnotation 而不是 MKAnnotation。错误输出 "' MKAnnotation' 无法构造,因为它没有可访问的初始值设定项”

转载 作者:搜寻专家 更新时间:2023-11-01 06:21:04 25 4
gpt4 key购买 nike

为了在 Swift 中向 mapview 添加注释,我有这段有效的代码,例如:

让 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' cannot be constructed because it has no accessible initializers”并且无法设置 annotation.coordinate 或 title 等属性。

那么为什么这行不通让 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 是一个协议(protocol),不是一个类,所以不能直接实例化它,只能实例化符合它的类。 MKPointAnnotation 是一个类,符合 MKAnnotation 协议(protocol),因此您可以直接实例化和使用它。

关于ios - Swift:为什么是 MKPointAnnotation 而不是 MKAnnotation。错误输出 "' MKAnnotation' 无法构造,因为它没有可访问的初始值设定项”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34078673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com