从火力检索数组元素中迅速
问题描述:
我完全新的迅速和火力点,而且我有从火力数据库中检索数组元素的困难从火力检索数组元素中迅速
我可以检索的其他元件是这样的:
数据库参考
class ViewController: UIViewController {
var ref: FIRDatabaseReference?
let fileName : String = "jsonFile"
方法
func parseFirebaseResponse() {
ref?.child("Vandreture").child(fileName).observe(.value, with:
{ (snapshot) in
let dict = snapshot.value as? [String: AnyObject]
let navn = dict!["navn"] as? String
print(navn as Any)
let type = dict!["type"] as? String
print(type as Any)
let Længde = dict!["length"] as? String
print(Længde as Any)
let link = dict!["link"] as? String
print(link as Any)
})
}
但我已经寻找一种方法来检索经度/纬度对, 第一对应该 纬度109.987 经度102.987 - 但到目前为止没有运气 - 帮助真的很感激:)
答
获取您的“位置”作为字典(又名[字符串:AnyObject])。然后获取经纬度数组。然后将每个元素从经纬度映射到元组或类似的东西。
guard let position = dict!["position"] as? [String: AnyObject],
let latitudeArray = position["latitude"] as? [String],
let longitudeArray = position["longitude"] as? [String] else { return }
print(latitudeArray)
print(longitudeArray)
答
我想你应该调整你的数据库是这样的:
Vandreture {
jsonFile {
length: "16.2"
link: "www.second.com"
navn: "Kagerup rundt"
positions {
-KqXukxnw3mL38oPeI4y {
x: "102.987"
y: "109.987"
}
-KqXukxnw3mL38oPeI5- {
x: "108.234"
y: "99.098"
}
}
}
}
然后让你的坐标将容易得多!
答
感谢Victor Apeland--现在我改变了数据库的结构。我无法完全按照你的建议做! 我连接了lon/lat作为一个字符串(不是最好的 - 我知道 - 我是一个新手快速,并且firebase没有很好的记录) 从我的long/lat中检索单个元素,我用这个法,我是特别感兴趣的一读,所以我做了一个列表,填充它,并得到了第一个元素,它解析到一个新的方法
func responsePosition() {
var positions = [String]()
ref?.child("Vandreture").child(fileName).child("position").observe(.value, with: { (snapshot) in
for snap in snapshot.children {
let userSnap = snap as! FIRDataSnapshot
let uid = userSnap.key //the uid of each user
let userDict = userSnap.value as! String
positions.append(userDict)
}
let pos : String = positions[0]
self.formatPositions(pos : pos)
})
}
-
在我的火力点LON-LAT是除以一个空格,所以我分开了字符串并且投了一倍。
func formatPositions(pos : String) { let lotLangDivided = pos.components(separatedBy: " ") let longitude = Double(lotLangDivided[0]) let latitude = Double(lotLangDivided[1]) }
现在我得到的结果,我想 - 感谢您的帮助维克多和Khuong :)
https://开头计算器。com/a/45143371/7715250在那里检查我的答案,应该给出正确的方向 –