i am workinng on timer app. i have a an array.i want to sort array in accending order. suppose i have 5 element in array like 10,100,50,30,70.
I want array like 10,30,50,70,100.
i am workinng on timer app. i have a an array.i want to sort array in accending order. suppose i have 5 element in array like 10,100,50,30,70.
I want array like 10,30,50,70,100.
NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id firstObject, id secondObject) {
return [((NSString *)firstObject) compare:((NSString *)secondObject) options:NSNumericSearch];
}];
EDIT: If the elements are numbers, change the returned type and the type of the firstObject and secondObject.
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
Use sortedArrayUsingComparator
NSArray *arr = @[@3, @2, @6, @1];
NSArray *sorted = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([obj1 intValue] < [obj2 intValue]) return NSOrderedAscending;
else return NSOrderedDescending;
}];
NSArray * arr=[[NSArray alloc]initWithObjects:[NSNumber numberWithInt:10],[NSNumber numberWithInt:100],[NSNumber numberWithInt:50],[NSNumber numberWithInt:30],[NSNumber numberWithInt:70], nil];
NSLog(@"Before sorting%@",arr);
arr = [arr sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"After sorting%@",arr);
NSSortDescriptor *aSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"sort" ascending:YES comparator:^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
self.myList = [NSMutableArray arrayWithArray:[unsortedList sortedArrayUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]]];
use this code:
NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id firstObject, id secondObject) {
return [((NSString *)firstObject) compare:((NSString *)secondObject) options:NSNumericSearch];
}];
EDIT: If the elements are numbers, change the returned type and the type of the firstObject and secondObject.