Tom*_*ulc 2 sorting objective-c nsmutablearray
我有NSMutableArray对象Link有参数Byte taskOne.我必须通过此参数对对象进行排序.
for (Byte i = 0; i < [linksArray count]-1; i++) {
Link *l = [linksArray objectAtIndex:i];
Link *lNext = [linksArray objectAtIndex:i+1];
if (l.taskOne >= lNext.taskOne) {
NSLog(@"%d >= %d", l.taskOne, lNext.taskOne);
[linksArray replaceObjectAtIndex:i withObject:lNext];
[linksArray replaceObjectAtIndex:i+1 withObject:l];
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误的结果,但我不知道出了什么问题.谢谢你的帮助.
对数组进行排序的最简单方法是使用NSSortDescriptorKVC,如下所示:
NSArray *linksArray; // Assume that this contains objects which respond to the -taskOne method
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"taskOne" ascending:YES];
NSArray *sortedLinks = [linksArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)
这将创建一个新数组.要对其进行排序NSMutableArray,请执行以下操作:
NSMutableArray *linksArray; // Assume that this contains objects which respond to the -taskOne method
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"taskOne" ascending:YES];
[linksArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)