如何在NSExpression中使用模运算符?

时间:2015-03-15 13:56:06

标签: ios objective-c xcode exception nsexpression

如何在NSExpression中使用模运算符?如果我使用

NSExpression *exp = [NSExpression expressionWithFormat:@"3%2"];

我收到错误 - ***由于未捕获的异常'NSInvalidArgumentException'终止应用,原因:'无法解析格式字符串“3%2 == 1”'。

任何人都可以解释如何在NSExpression中正确使用模数运算符吗?一个例子会很棒!

2 个答案:

答案 0 :(得分:0)

NSExpression具有数学方程的函数特征,如模数。以下是您如何执行所询问的等式的示例:

NSExpression *expression = [NSExpression expressionForFunction:@"modulus:by:" arguments:@[[NSExpression expressionForConstantValue:@3], [NSExpression expressionForConstantValue:@2]]];

id value = [expression expressionValueWithObject:nil context:nil];

NSLog(@"%@", value); // Output is 1

Here是指向StackOverflow帖子的链接,其中包含可与NSExpression一起使用的多个函数列表。

答案 1 :(得分:0)

你可以像@Sean McDonald建议的那样使用+[NSExpression expressionForFunction:arguments:],或者如果你发现它太冗长,你可以在格式字符串中使用预定义函数的语法:

NSExpression *exp = [NSExpression expressionWithFormat:@"modulus:by:(3, 2)"];