我正在尝试在IndexPath.row中为每一行打印位置,因为IndexPath.row确定要在TableView中接收哪些特定内容。
来自Firebase的NSDictionary看起来像:x,y,x,y,x,y
,依此类推。
0,1 =第一个坐标 2,3 =第二坐标
Output: [55.617804300000003, 12.98939, 55.601572900000001, 12.979585399999999, 34.506667999999998, -81.948334000000003, -7.0909109999999993, 107.668887]
因此,首先0和1是x,y代表第一个坐标:
print(CLLocationCoordinate2D(latitude: openLocations[indexPath.row], longitude: openLocations[indexPath.row + 1]))
目前我们的结果如何:
x= longitude, y = altitude
x, y
0, 1
1, 2
2, 3
3, 4
5, 6
应该如何:
x= longitude, y = altitude
x, y
0, 1
2, 3
4, 5
6, 7
8, 9
NSDictonary看起来像:
x,y,x,y,x,y ..
这应该是一项简单的任务,但我现在的想法是在其他地方,如果有任何可以帮我解决这个问题,我将非常感激。
先谢谢,
真诚的,
菲利普
答案 0 :(得分:2)
你必须采取每一秒:
...
答案 1 :(得分:0)
实际上你所拥有的是一个数组,你可以像往常一样循环(asumming你收到成对的位置):
var openLocations = [55.617804300000003, 12.98939, 55.601572900000001, 12.979585399999999, 34.506667999999998, -81.948334000000003, -7.0909109999999993, 107.668887]
for(var i = 0; i < openLocations.count; i += 2){
let location = CLLocationCoordiante2D(latitude: openLocations[i], longitude: openLocations[i+1])
print(location)
}
在使用IndexPath和UITableView的情况下,首先你有一些选择:
选项1: 首先将您从firebase接收的数据映射到绑定位置的数据结构。防爆。它可以是一个CLLocationCoordinate2D数组,也可以是您想要的结构。
选项2: 您需要对数据源方法进行一些修改,假设:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return openLocations.count / 2
}