如何从具有自定义 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
类型。所以 minObj
和 maxObj
将是数字而不是 MyClass
类型。
有没有什么好的方法可以找出相同点并得到 MyClass
而不是 NSNumber
?
P.S。可以有多个相同的值,可以是最小值或最大值。
只需编写代码即可。例如(直接输入答案,预计会有轻微错别字):
MyObj *minObj = filteredArray[0];
for(MyObj *candidate in filteredArray)
if([candidate.height compare:minObj.height] == NSOrderedDescending)
minObj = candidate;
当然,您可以对数组进行一次遍历,同时找到最小值和最大值。
HTH
我有一个 NSArray
,自定义 class 个对象有 NSNumber
属性。我正在尝试从数组中获取最小值和最大值。所以这是我的代码:
MyClass *minObj = [filteredArray valueForKeyPath:@"@min.self.height"];
MyClass *maxObj = [filteredArray valueForKeyPath:@"@max.self.height"];
这有效,我可以获得最小值和最大值,但属于 NSNumber
类型。所以 minObj
和 maxObj
将是数字而不是 MyClass
类型。
有没有什么好的方法可以找出相同点并得到 MyClass
而不是 NSNumber
?
P.S。可以有多个相同的值,可以是最小值或最大值。
只需编写代码即可。例如(直接输入答案,预计会有轻微错别字):
MyObj *minObj = filteredArray[0];
for(MyObj *candidate in filteredArray)
if([candidate.height compare:minObj.height] == NSOrderedDescending)
minObj = candidate;
当然,您可以对数组进行一次遍历,同时找到最小值和最大值。
HTH