Я хочу отсортировать табличный вид мест по расстоянию, ближайшему к пользователю.У меня есть три метода (myLocation, clubLocation и enumerate).Значения lat и long хранятся в plist (objectatIndex 4 и 5 соответственно для кода ниже).Я создал два массива, один для lat и один для long ниже в методе перечисления, но у меня есть умственный блок на том, как соединить все вместе.Я бы предположил, что перечисление вернет массив (вместо void, это просто заполнитель).Как он может вернуть два массива одновременно?Должен ли я перечислить один раз для лат и один раз для длинных?Пожалуйста, помогите.
Я обновил, чтобы иметь два метода, один для Lat и один для Long, как мне вернуть расстояния и связанные с ними объекты?Например, массив только расстояний мне не нужен, так как мне нужно знать, какое расстояние связано с каким местоположением?
-(NSArray *)distanceFromLat
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data3" ofType:@"plist"];
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *latitudeArray = [[NSMutableArray alloc] init];
latitudeArray = [[tempDictionary objectForKey:@"Subtree"]objectAtIndex:4];
NSEnumerator *enumLat = [latitudeArray objectEnumerator];
id object;
while ((object = [enumLat nextObject])) {
[myLocation distanceFromLocation:clubLocation];
}
}
-(NSArray *)distanceFromLong
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data3" ofType:@"plist"];
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *longitudeArray = [[NSMutableArray alloc] init];
longitudeArray = [[tempDictionary objectForKey:@"Subtree"]objectAtIndex:5];
NSEnumerator *enumLong = [longitudeArray objectEnumerator];
id object;
while ((object = [enumLong nextObject])) {
[myLocation distanceFromLocation:clubLocation];
}
}
-(CLLocation *)clubLocation
{
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Data3" ofType:@"plist"]];
NSArray *array = [dictionary objectForKey:@"Subtree"];
NSNumber *latitude = [NSString stringWithFormat:@"%@",[array objectAtIndex:4]];
NSNumber *longitude = [NSString stringWithFormat:@"%@",[array objectAtIndex:5]];
double clubLatitude = [latitude doubleValue];
double clubLongitude = [longitude doubleValue];
clubLocation = [[CLLocation alloc]initWithLatitude:clubLatitude longitude:clubLongitude];
return clubLocation;
}
-(CLLocation *)myLocation
{
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
NSNumber *myLatitude = [NSNumber numberWithDouble:coordinate.latitude];
NSNumber *myLongitude = [NSNumber numberWithDouble:coordinate.longitude];
double myLatitudeD = [myLatitude doubleValue];
double myLongitudeD = [myLongitude doubleValue];
myLocation = [[CLLocation alloc]initWithLatitude:myLatitudeD longitude:myLongitudeD];
return myLocation;
}