In my Xcode project, I have the following classes:
Address
@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
Location
@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
In a subclass of UITableViewController, there is an NSArray containing many unsorted LDLocations. Now I want to sort NSArray objects in ascending order, depending on the city of LDAddress properties.
How can I sort an array using NSSortDescriptor? I tried the following, but it is reset when the application loads.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Address.city" ascending:YES]; [_locations sortedArrayUsingDescriptors:@[sortDescriptor]];
sorting ios objective-c nssortdescriptor
Philipps
source share