Можете ли вы оценить содержимое NSString и получить значение BOOL оцененного выражения?

В Objective-C, скажем, у вас есть NSString содержащий следующее:

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

Есть ли способ оценить NSString и получить логическое значение содержимого строки?

1 ответ

Я предполагаю, что вы хотите оценить фактическое выражение. Для простых выражений вы можете использовать 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

Другие вопросы по тегам