¿Es posible utilizar objetos CLLocation como claves en un diccionario? Cuando intento esto, el [dictionary objectForKey: clLocationObj] siempre devuelve nil incluso cuando ya hay claves CLLocation insertadas con exactamente la misma latitud y longitud. ¿Qué podría estar haciendo mal?utilizando objetos CLLocation como claves en el diccionario de
for (Location *location in someArray) {
CLLocation *locationKey = [[CLLocation alloc] initWithLatitude:[location.latitude doubleValue] longitude:[location.longtitude doubleValue]];
LocationAnnotation *annotationAtLocation = [self.uniqueLocations objectForKey:locationKey];
if (annotationAtLocation == nil)
NSLog(@"this is always nil");
}
Sé por depuración que hay varios objetos de ubicación con la misma latitud y longitud en someArray.
los solucionaron eso? –
Lo hice de otra manera. La razón por la que CLLocation no me funcionaba bien es que tiene más información que solo lat/long, por lo que comparar 2 CLLocations con la misma latitud/longitud no va a dar lugar a una coincidencia. Terminé convirtiendo el objeto CLLocationCoordinate2D en un NSValue y lo usé como la clave del diccionario. –