I have an NSArray
of NSDictionaries
. In the NSDictionary
I have an element called 'rowID' which is saved as an NSString
. However, everything saved in it is a number even though they saved as a string.
I would like to know how to sort the array based on this value but in terms of sorting 1-100. Currently, when I sort it 10 comes first when it should be 1-10.
This is how I am sorting:
NSArray *tempSortedItemsArray = [itemArray sortedArrayUsingDescriptors:
@[[NSSortDescriptor
sortDescriptorWithKey:@"rowID" ascending:YES]]];
Try this :-
NSArray *aSortedArray = [itemArray sortedArrayUsingComparator:^(NSMutableDictionary *obj1,NSMutableDictionary *obj2) {
NSString *num1 =[obj1 objectForKey:@"rowID"];
NSString *num2 =[obj2 objectForKey:@"rowID"];
return (NSComparisonResult) [num1 compare:num2 options:(NSNumericSearch)];
}];