Can i sort the NSDictionary on basis of key in Objective-C? Can i sort the NSDictionary on basis of key in Objective-C? objective-c objective-c

Can i sort the NSDictionary on basis of key in Objective-C?


You can sort the keys and then create an NSMutableArray by iterating over them.

NSArray *sortedKeys = [[dict allKeys] sortedArrayUsingSelector: @selector(compare:)];NSMutableArray *sortedValues = [NSMutableArray array];for (NSString *key in sortedKeys)    [sortedValues addObject: [dict objectForKey: key]];


It is much simpler to use objectsForKeys:notFoundMarker: for that

NSDictionary *yourDictionary;NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];// As we using same keys from dictionary, we can put any non-nil value for the notFoundMarker, because it will never usedNSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];