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]];

questionAnswers(4)

yourAnswerToTheQuestion