Classifique o NSArray com objetos personalizados
No meu projeto Xcode eu tenho as seguintes classes:
Endereço
@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
Localização
@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
Em uma subclasse de UITableViewController, há um NSArray contendo muitos objetos não classificados de LDLocations. Agora, eu quero classificar os objetos do NSArray ascendendo com base na propriedadecidade de um LDAddress.
Como posso classificar o array usando o NSSortDescriptor? Eu tentei o seguinte, mas o aplicativo despeja ao classificar o array.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Address.city" ascending:YES];
[_locations sortedArrayUsingDescriptors:@[sortDescriptor]];