【发布时间】:2018-01-16 10:44:18
【问题描述】:
我正在尝试添加一组带有经度和纬度的字典。
这是因为我想为地图添加注释,但我从 Firebase 获取数据并需要将它们存储在数组中。
我从一组邮政编码中获取它们并将它们放入字典中,这一切都很好,但现在我正在尝试将它们添加到一个新数组中。
我只想创建一个字典数组。最终结果在帖子中。即[["latitude: 873648264, "longitude": 9849823658293753], [latitude: 873648264, "longitude": 9849823658293753 ]]
以下是我的代码到目前为止,我已经四处寻找答案,有很多但我无法理解它。
var posts = [[Dictionary<String,Double>]]()
var latitude = Dictionary<String,Double>()
var longitude = Dictionary<String,Double>()
latitude = ["latitude":lat!]
longitude = ["longitude":lon!]
var latLon = ["latitude":latitude, "longitude":longitude]
posts.append(latLon)
//从这里更新问题:
试图实现的目标是用我自己的 firebase 数据的 lat 和 lon 替换这段代码。
let locations = [
["title": "New York, NY", "latitude": 40.713054, "longitude": -74.007228],
["title": "Los Angeles, CA", "latitude": 34.052238, "longitude": -118.243344],
["title": "Chicago, IL", "latitude": 41.883229, "longitude": -87.632398]
]
for location in locations {
let annotation = MKPointAnnotation()
annotation.title = location["title"] as? String
annotation.coordinate = CLLocationCoordinate2D(latitude: location["latitude"] as! Double, longitude: location["longitude"] as! Double)
mapView.addAnnotation(annotation)
}
【问题讨论】:
-
您能否详细说明问题出在哪里以及您期望的结果是什么?
-
您还应该在问题中包括您以什么形式获取数据以及您需要它的原因,因为在字典中存储单个 long-lat 值对对我来说似乎过于复杂。
-
我现在已经更新了问题以显示我正在尝试做什么,感谢您对此的帮助。
-
伙计,我不想这么说,但那个代码真的很糟糕。将所有内容存储在字典中是犯错的好方法。相反,您应该创建一个自定义
class/struct并将它们存储在数组中,这应该可以帮助您防止错误或更容易地捕获它们。 -
感谢@EmillioPelaez 的建议,不要害怕告诉我这很糟糕,我将如何学习我才学习了 10 个月左右,所以感谢你们提供的所有建议.
标签: arrays swift dictionary append