下面的代码可以工作:
NSString* equation = @"2.5*3";
NSExpression* expresion = [NSExpression expressionWithFormat:equation, nil];
NSNumber* result = [expresion expressionValueWithObject:nil context:nil];
NSLog(@"%@", result); // 7.5但这个不是,它在NSInvalidArgumentException中结束
NSString* equation = @"2.5<=3";
NSExpression* expresion = [NSExpression expressionWithFormat:equation, nil];
NSNumber* result = [expresion expressionValueWithObject:nil context:nil];
NSLog(@"%@", result); //I wanted result to be 1, as the expression is true有没有人知道是否有一种方法可以使用NSExpression来计算这样的逻辑表达式?
谢谢。
发布于 2014-01-24 18:53:22
使用NSPredicate而不是NSExpression:
NSString* equation = @"2.5<=3";
NSPredicate* pre = [NSPredicate predicateWithFormat:equation];
BOOL result = [pre evaluateWithObject:nil];
NSLog(@"%@", (result ? @"YES" : @"NO"));https://stackoverflow.com/questions/21330187
复制相似问题