是否可以使用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]);