使用 NSExpression 计算小于值?

Posted

技术标签:

【中文标题】使用 NSExpression 计算小于值?【英文标题】:Calculate lessthan value using NSExpression? 【发布时间】:2013-09-18 11:30:39 【问题描述】:

对于以下代码块:

NSString *formul=@"5 < 9";

NSExpression *e = [NSExpression expressionWithFormat:formul];

int result = [[e expressionValueWithObject:nil context:nil] intValue];

NSLog(@"formule:%d", result);

我收到错误:

由于未捕获的异常'NSInvalidArgumentException',原因:'无法解析格式字符串“5

【问题讨论】:

【参考方案1】:

您可以改用NSPredicate

NSString *formul = @"15 < 9";
NSPredicate *predicate = [NSPredicate predicateWithFormat:formul];
BOOL b = [predicate evaluateWithObject:nil];

Swift 中:

let formula = "15 < 9"
let predicate = NSPredicate(format: formula)
let b = predicate.evaluate(with: nil)
print(b) // false

【讨论】:

它工作正常...使用 NSExpression 无法实现 @"5 @prabu:可能不会,至少我不知道解决方案。

以上是关于使用 NSExpression 计算小于值?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSExpression 时捕获 NSInvalidArgumentException 的正确方法 [重复]

如何从 NSExpression 的 expressionValueWithObject:context 方法中获取浮点数?

NSExpression 1/2

C语言中怎么计算一个数的平方?

使用“现在”的 NSExpression 函数

NSExpression 捕获无效参数