是否可以使用Obj-C键值编码进行算术运算?我正在寻找这样的东西:

[obj valueForKeyPath:@"(val1+val2)"]

还是必须实现一个手动添加两个值的属性?

最佳答案

无法使用KVC进行算术运算。

您可以对字符串进行算术运算,然后将其传递给[obj valueforKeyPath:...]:

NSString *val1=@"3";
NSString *val2=@"5";

NSString *formula = [NSString stringWithFormat:@"%@+%@",val1,val2];

NSExpression *exp = [NSExpression expressionWithFormat:formula];
NSNumber *resultForCustomFormula = [exp expressionValueWithObject:nil context:nil];

NSLog(@"%f", [resultForCustomFormula floatValue]);

10-08 05:10