2016-07-09 2 views
0

Я пытаюсь распечатать места для каждой строки в IndexPath.row, потому что IndexPath.row определяет, какой конкретный контент они хотят для получения в TableView.Swift: Печать координат от Firebase: 0,1 - 2,3 вместо 0,1 - 1,2

NSDictionary от Firebase выглядит так: 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 х, у, для первых координат со следующими:

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 выглядит следующим образом:

х, у, х, у, х, у ..

Это должно быть легкой задачей, но мой разум в данный момент находится где-то еще, если может помогите мне прямо, это было бы высоко оценено.

Спасибо заранее,

С уважением,

Filip

+0

Ваш словарь не выглядит как словарь вообще, больше похоже на массив – Sulthan

ответ

2

Вы должны принять каждый второй ряд:

latitude: openLocations[2 * indexPath.row], longitude: openLocations[2 * indexPath.row + 1] 
0

В действительности то, что у вас есть массив, вы можете (например, вы получаете места в паре):

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 к связыванию, что структура данных местоположения. Ex. Это может быть массив CLLocationCoordinate2D, или вы являетесь собственной структурой, которую хотите.

Вариант 2: Вам нужно сделать некоторые изменения по методу источника данных, предположим:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ 
    return openLocations.count/2 
} 
Смежные вопросы