如何在NSExpression中使用模运算符?如果我使用
NSExpression *exp = [NSExpression expressionWithFormat:@"3%2"];
我收到错误 - ***由于未捕获的异常'NSInvalidArgumentException'终止应用,原因:'无法解析格式字符串“3%2 == 1”'。
任何人都可以解释如何在NSExpression中正确使用模数运算符吗?一个例子会很棒!
答案 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)"];