Ordena NSArray con objetos personalizados
En mi proyecto Xcode tengo las siguientes clases:
Dirección
@interface LDAddress : NSObject{
NSString *street;
NSString *zip;
NSString *city;
float latitude;
float longitude;
}
@property (nonatomic, retain) NSString *street;
@property (nonatomic, retain) NSString *zip;
@property (nonatomic, retain) NSString *city;
@property (readwrite, assign, nonatomic) float latitude;
@property (readwrite, assign, nonatomic) float longitude;
@end
Ubicación
@interface LDLocation : NSObject{
int locationId;
NSString *name;
LDAddress *address;
}
@property (readwrite, assign, nonatomic) int locationId;
@property (nonatomic, retain) LDAddress *address;
@property (nonatomic, retain) NSString *name;
@end
En una subclase de UITableViewController, hay una NSArray que contiene muchos objetos sin clasificar de LDLocations. Ahora, quiero ordenar los objetos de NSArray ascendiendo en función de la propiedadciudad de una dirección de LD.
¿Cómo puedo ordenar la matriz utilizando NSSortDescriptor? Intenté lo siguiente, pero la aplicación se vuelca al ordenar la matriz.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Address.city" ascending:YES];
[_locations sortedArrayUsingDescriptors:@[sortDescriptor]];