Je veux trier un tableauVoir des lieux par distance plus proche de l'utilisateur. J'ai trois méthodes (myLocation, clubLocation et énumération). Les lat et long sont tenus sur une plist (objectatIndex 4 et 5 respectivement pour le code ci-dessous). J'ai créé les deux tableaux, un pour les lat et un pour les plus longs dans la méthode d'énumération, mais j'ai un blocage mental sur la façon de tout connecter ensemble. Je suppose que l'énumération retournerait un tableau (au lieu de vide, c'est juste un espace réservé). Comment peut-il retourner deux tableaux à la fois? Dois-je énumérer une fois pour lat et une fois pour longtemps? S'il vous plaît aider.Enumerate Latitude et Longitude de Plist
J'ai mis à jour pour avoir deux méthodes une pour Lat et une pour Long, comment puis-je retourner les distances et leurs objets associés? Par exemple, un tableau de distances justes ne me convient pas, car j'ai besoin de savoir quelle distance est associée à quel endroit?
-(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;
}
J'ai mis à jour la question avec deux nouvelles méthodes, pouvez-vous les regarder? En outre, je sais qu'il y a des fuites de mémoire, je n'ai pas encore traité avec eux. Merci – Eric
J'ai toujours besoin d'aide avec le code que j'ai mis à jour, si quelqu'un pouvait m'aider. – Eric