У меня есть массив местоположений
NSArray *locations = [[NSArray alloc]initWithObjects:loc1, loc2, loc3, loc4, loc5, loc6, loc7, loc8, loc9, nil];
Я перебираю массив и сохраняю различные расстояния от моего текущего местоположения до loc1, loc2 и т. Д. В другом массиве и сортирую их от ближайшего к дальнему,Это работает как шарм.
Однако мне нужно связать расстояние с названием места.Пример: если loc5 - ближайшее место, оно должно быть в верхней части списка.Я знаю названия разных мест, мне просто нужно как-то их связать.
Есть предложения?
РЕДАКТИРОВАТЬ:
Принимая во внимание ваш совет, я подумал, что яможет сделать что-то вроде этого:
У меня есть массив со всеми сохраненными расстояниями, давайте назовем массив a.
NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithObjects:locations forKeys:a];
NSArray *sortedArray = [a sortedArrayUsingSelector:@selector(compare:)];
for(int i = 0; i <[sortedArray count]; i++){
CLLocation *loc = [dic valueForKey:[sortedArray objectAtIndex:i]];
NSLog(@"Lat: %f , Lng: %f" , loc.coordinate.latitude , loc.coordinate.longitude);
}
Таким образом, я получу широту и долготу для разных расстояний, которые я могу проверить по моим локально сохраненным координатам.Однако из-за этого возникает ошибка:
- [Длина NSCFNumber]: нераспознанный селектор отправлен в экземпляр 0x1891f0 * Завершение работы приложения из-за неосуществленного исключения «NSInvalidArgumentException», причина: '-[NSCFNumber length]: нераспознанный селектор отправлен на экземпляр 0x1891f0 '
И он указывает мне на строку
CLLocation *loc = [dic valueForKey:[sortedArray objectAtIndex:i]];
Поток 1: Программа получила сигнал: "SIGABRT".
Есть идеи, как это исправить?