这是我的数据模型:

@interface DataModel : NSObject
@property (strong, nonatomic) NSString *label;
@property (nonatomic) float value;
@property (nonatomic) NSInteger index;
@property (nonatomic, strong) NSString *unit;
@end

我有一个带有此数据模型的NSArray
NSArray *myDataModels;

现在我需要从这个数组中获得一个具有最高@property (nonatomic) float value;的数据模型

我可以通过使用获得最高价值
[[myDataModels valueForKeyPath:@"@max.value"] intValue]

但是我需要的是具有最高价值的整个DataModel,而不仅仅是价值。

有人可以帮助我吗?

最佳答案

您需要迭代数组并找到最大值。

DataModel *maxModel = nil;
float maxValue = FLT_MIN;
for (DataModel *model in myDataModels) {
    if (model.value > maxValue) {
        maxModel = model;
        maxValue = model.value;
    }
}

NSLog(@"The max model is %@", maxModel);

关于ios - 从[NSArray valueForKeyPath:@“@ max.value”]返回dataModel,而不只是value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20942921/

10-11 14:08