【问题标题】:Append an array of dictionaries附加一个字典数组
【发布时间】: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


【解决方案1】:

仅对于字典数组,这就足够了

var posts = [[String: Double]]()

var latLon = ["latitude":lat!, "longitude": lon!]

posts.append(latLon)

【讨论】:

  • 我只想创建一个字典数组。最终结果在帖子中。即[[“纬度:873648264,“经度”:9849823658293753],[纬度:873648264,“经度”:9849823658293753]]
  • 根据您的需要编辑
  • 感谢您的帮助@pruthvikar。一旦您能够掌握我想要实现的目标,这就会完美无缺。抱歉一开始有点含糊,以后会努力改进的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 2019-06-29
相关资源
最近更新 更多