繁体   English   中英

对NSMutableArray中的对象进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM