从NSSet传递测试获取对象

时间:2013-10-13 20:11:44

标签: ios objective-c nsset

这应该很简单。我有一个NSSet of People对象。如何在集合中按字母顺序获取姓氏第一个人的对象?

2 个答案:

答案 0 :(得分:0)

如果你不希望这个集合很大,你可以使用:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES];
NSArray *sortedArray = [peopleSet sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
People *person = nil;
if (sortedArray) {
    person = sortedArray[0];
}

答案 1 :(得分:0)

编写方法firstObjectInSet:usingComparator:

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

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

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