我有一个NSArray
,其自定义类对象具有NSNumber
属性。我试图取一个最小值&数组中的最大值。所以这是我的代码:
MyClass *minObj = [filteredArray valueForKeyPath:@"@min.self.height"];
MyClass *maxObj = [filteredArray valueForKeyPath:@"@max.self.height"];
这可行,我可以获得最小值和最大值但是NSNumber
类型。因此minObj
和maxObj
将是一个数字,而不是MyClass
类型。
是否有一种很好的方法可以找到相同内容并获取MyClass
代替NSNumber
?
P.S。可以有多个相同的值,可以是最小值或最大值。
答案 0 :(得分:1)
只需编写代码即可。例如(直接输入答案,期待轻微错别字):
MyObj *minObj = filteredArray[0];
for(MyObj *candidate in filteredArray)
if([candidate.height compare:minObj.height] == NSOrderedDescending)
minObj = candidate;
您当然可以通过阵列上的一次传递找到最小值和最大值。
HTH