You can use NSArray
's -sortedArrayUsingComparator:
method to get a sorted array using a custom block. I find this more convenient than -sortedArrayUsingSelector:
, because you can declare the comparator inline, like so:
NSArray *unsortedArray = [NSArray arrayWithObjects:@"Hello", @"4", @"Hi", @"5", @"2", @"10", @"1", nil];
NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(NSString *str1, NSString *str2) {
return [str1 compare:str2 options:NSNumericSearch];
}];
This will return an array that looks like so:
(
1,
2,
4,
5,
10,
Hello,
Hi
)
In general, it's pretty nice to use blocks because they eliminate the need to create random selectors that run amuk in your code.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…