我可以在运行时计算Objc中的等式吗?

时间:2012-08-03 13:38:58

标签: objective-c

我可以在Objc中做这样的事情:

NSString* myEquation = @"(3 * 4 / 2 ) - 5";
[myEquation calculate]; // return 1

感谢。

2 个答案:

答案 0 :(得分:2)

http://apptree.net/parser.htm应该做你想做的事。

NSString to equation这里似乎已经提出了这个问题。所以一定要先搜索:)。

答案 1 :(得分:1)

您可以在没有外部库的情况下执行此操作:使用表达式后跟== 0创建谓词,并使用其左表达式。然后,您可以评估该表达式,如下所示:

NSExpression *e = [(NSComparisonPredicate *)[NSPredicate
    predicateWithFormat:@"(3 * 4 / 2 ) - 5==0"]
    leftExpression];
NSLog(@"%@", [e expressionValueWithObject:self context:nil]);