
[英]Sorting objects in NSMutableArray with sortUsingComparator
[英]Sorting Objects in an NSMutableArray
所以我有一个人mutablearray,其中每个对象包含3个NSString属性:firstName,lastName和age。 我想知道如何对这些对象进行排序,以便按lastName按字母顺序排列,以便可以在表格视图中显示该对象(并在以后通过单击名称对其进行编辑)。 其他所有设置都很好,只是名称在表中的显示方式不同。
我试过使用
[self.person sortedArrayUsingSelector@selector(caseInsensitiveCompare:)];
但这会返回错误:无法识别的选择器已发送到实例。
感谢所有帮助:)
通过使用以下方法解决了它:
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES];
[self.person sortUsingDescriptors:[NSArray arrayWithObject:sort]];
谢谢大家的投入:)
如果要使用选择器,则需要在person类中实现比较方法,如下所示。
- (NSComparisonResult)compare:(Person *)otherObject {
return [self.lastName compare:otherObject.lastName ];
}
NSArray *sortedArray;
sortedArray = [unSortedArray sortedArrayUsingSelector:@selector(compare:)];
这个Stackoverflow问题说明了也可以使用的其他方法。
您想使用sortedArrayUsingComparator:
代替:
array = [array sortedArrayUsingComparator: ^(id a, id b) {
NSString *first = [a objectForKey:@"lastName"];
NSString *second = [b objectForKey:@"lastName"];
return [first compare:second];
}];
请注意,我现在不在Mac上,这是手动输入的,可能有小错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.