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

How to find a minimum and maximum values from NSArray having a custom class objects?

我有一个 NSArray,自定义 class 个对象有 NSNumber属性。我正在尝试从数组中获取最小值和最大值。所以这是我的代码:

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

这有效,我可以获得最小值和最大值,但属于 NSNumber 类型。所以 minObjmaxObj 将是数字而不是 MyClass 类型。

有没有什么好的方法可以找出相同点并得到 MyClass 而不是 NSNumber

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

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

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

当然,您可以对数组进行一次遍历,同时找到最小值和最大值。

HTH