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

Ios 如何在NSExpression中使用模运算符?,ios,objective-c,xcode,exception,nsexpression,Ios,Objective C,Xcode,Exception,Nsexpression,如何在NSExpression中使用模运算符?如果我使用 NSExpression *exp = [NSExpression expressionWithFormat:@"3%2"]; 我收到一个错误-***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“无法分析格式字符串“3%2==1” 有人能解释一下如何正确地使用N表达式的模运算符吗?举个例子就好了 n表达式对数学方程(如模量)具有函数特性。以下是您将如何执行所问等式的示例: NSExpr

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

NSExpression *exp = [NSExpression expressionWithFormat:@"3%2"];
我收到一个错误-***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“无法分析格式字符串“3%2==1”


有人能解释一下如何正确地使用N表达式的模运算符吗?举个例子就好了

n表达式对数学方程(如模量)具有函数特性。以下是您将如何执行所问等式的示例:

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

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

您可以按照@Sean McDonald的建议使用
+[NSExpression expressionForFunction:arguments:://code>,或者如果您发现太过冗长,可以使用格式字符串中预定义函数的语法:

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

如何添加参数?您可以如上所述对参数进行硬编码,也可以使用
%@
占位符,如
[NSExpression expression expression withformat:@“modules:by:(@,2)”,@3]