我最近开始学习 swift,现在已经迈出了制作自己地图的下一步。我已经成功地用 mapkit 制作了一个应用程序,现在我正在用 mapbox 试试运气,因为我喜欢它的设计功能。
我已经构建了一个字典,其中包含我的位置数据,然后我制作了一个循环,将数据添加到我的地图中。但是我现在卡住了,因为我收到以下错误:
" 参数类型 '[MGLPointAnnotation]' 不符合预期的类型 'MGLAnnotation'
当我尝试用我的字典 mapView.addAnnotation 时会发生这种情况。到目前为止,我了解到它与解包字典中的值有关,但是当我通过编写 mapView.addAnnotation(annotations as!MGLAnnotation) 强制解包时,我的应用程序崩溃了。
有人可以告诉我正确的方向吗?我不是在寻找修补程序,而是更多地找出我哪里出错了。非常感谢!
这是代码:
let locations = [
["name" : "Apple Inc.",
"latitude" : 37.33187,
"longitude" : -122.02951,
"mediaURL" : "http://www.apple.com"],
["name" : "BJ's Restaurant & Brewhouse",
"latitude" : 37.33131,
"longitude" : -122.03175,
"mediaURL" : "http://www.bjsrestaurants.com"]
]
var annotations = [MGLPointAnnotation]()
for dictionary in locations {
let latitude = CLLocationDegrees(dictionary["latitude"] as! Double)
let longitude = CLLocationDegrees(dictionary["longitude"] as! Double)
let coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let name = dictionary["name"] as! String
let discription = dictionary["mediaURL"] as! String
let annotation = MGLPointAnnotation()
annotation.coordinate = coordinate
annotation.title = "\(name)"
annotation.subtitle = "\(discription)"
annotations.append(annotation)
}
mapView.addAnnotation(annotations as! MGLAnnotation)