使用 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 方法中获取浮点数?