如何从具有自定义类对象的NSArray中查找最小值和最大值?

时间:2016-11-22 06:19:40

标签: objective-c filter nsarray max min

我有一个NSArray,其自定义类对象具有NSNumber属性。我试图取一个最小值&数组中的最大值。所以这是我的代码:

MyClass *minObj = [filteredArray valueForKeyPath:@"@min.self.height"];
MyClass *maxObj = [filteredArray valueForKeyPath:@"@max.self.height"];

这可行,我可以获得最小值和最大值但是NSNumber类型。因此minObjmaxObj将是一个数字,而不是MyClass类型。

是否有一种很好的方法可以找到相同内容并获取MyClass代替NSNumber

P.S。可以有多个相同的值,可以是最小值或最大值。

1 个答案:

答案 0 :(得分:1)

只需编写代码即可。例如(直接输入答案,期待轻微错别字):

MyObj *minObj = filteredArray[0];
for(MyObj *candidate in filteredArray)
   if([candidate.height compare:minObj.height] == NSOrderedDescending)
      minObj = candidate;

您当然可以通过阵列上的一次传递找到最小值和最大值。

HTH