0

这应该很容易。我有一个 NSSet 的 People 对象。如何获取姓氏在集合中按字母顺序排列的人的对象?

4

2 回答 2

0

如果您不希望集合很大,您可以使用:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES];
NSArray *sortedArray = [peopleSet sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
People *person = nil;
if (sortedArray) {
    person = sortedArray[0];
}
于 2013-10-13T20:48:25.480 回答
0

写一个方法 firstObjectInSet:usingComparator:

你甚至可以使它成为 NSSet 上的一个类别方法。

在该方法中,您只需遍历集合中的对象(可能使用 enumerateObjectsUsingBlock)。您需要在集合之外定义一个本地(_block)变量 firstObject 。对于每次迭代,如果新对象出现在前一个对象之前,则将 firstObject 替换为新对象。然后在枚举完成后,返回 firstObject 作为方法结果。那总是会通过集合并返回第一个对象。

如果您不需要那么灵活,请删除 NSComparator 参数,然后硬编码一个方法来查找第一个对象。

于 2013-10-13T20:55:49.147 回答