你能对一个NSString的内容求值并得到被求值表达式的BOOL值吗?



在Objective-C中,假设您有一个包含以下内容的NSString:

NSString * boolStr = [NSString stringWithFormat:@"%@", "1 > 0"];

是否有一种方法来评估NSString并获得字符串内容的布尔值?

我假设您想计算一个实际的表达式。对于简单的表达式,你可以滥用NSPredicate来做到这一点,例如:

    NSPredicate *predicate1=[NSPredicate predicateWithFormat:@"1>0"];
    NSPredicate *predicate2=[NSPredicate predicateWithFormat:@"1<0"];
    BOOL    ok1=[predicate1 evaluateWithObject:nil];
    BOOL    ok2=[predicate2 evaluateWithObject:nil];
    NSLog(@"ok1: %d  ok2: %d",ok1,ok2);

将打印:ok1: 1 ok2: 0

最新更新