Objective-c基础:将字符串转换为运算符?

时间:2013-12-02 14:59:25

标签: objective-c macos math

做一个grapher app我想知道以下内容:

我的字符串等于:3 * 10; (例如)

我希望我的Integer变量直接等于该字符串的数学结果

like:int result = my string result(因为它是一个运算符)

我希望我足够清楚。

哪种方法最简单? 感谢

2 个答案:

答案 0 :(得分:3)

你可以用这样的东西来做,但你需要知道字符串的格式:

    NSPredicate * pred = [NSPredicate predicateWithFormat:@"3*10 = 0"];
    NSExpression * first = [(NSComparisonPredicate *) pred leftExpression];
    NSNumber * result = [first expressionValueWithObject:nil context:nil];
    int finalResult = [result intValue];

此外,您可以使用NSScanner扫描字符串并提取数字和运算符。有关详细信息,请参阅this主题。

答案 1 :(得分:1)

没有标准功能可以做到这一点。您可以创建自己的解析器来解析字符串并获取数字和运算符,之后您可以对此进行计算。还有一些外部库,如DDMathParser或GCMathParseryou可以使用。