В настоящее время я делаю калькулятор, который позволяет пользователю вводить желаемую формулу.
Пример.((1 + 1) ** 9) +2)
Это прекрасно работает, я использовал два метода для вычисления этого.
Первый:
answer = [[NSExpression expressionWithFormat:typeTo.text, nil] expressionValueWithObject:nil context:nil];
typeTo.text = [NSString stringWithFormat:@"%@", answer];
answerLabel.text = [NSString stringWithFormat:@"ANS { %@ }", answer];
Второе:
answer = [GCMathParser evaluate:typeTo.text];
Оба из них вычисляют проблему без затруднений.Но если пользователь вводит:
(1 + 1)) [две скобки]
В обоих случаях происходит сбой.Это один из примеров множества различных синтаксических ошибок.Есть ли способ, как легко это предотвратить?
.
Дополнительная информация: Второй способ ловит ошибку:
#ifdef __COCOA_IMPLEMENTATION__
[NSException raise:@"Error in expression" format:@"error = %s", errStr];
#endif
СПАСИБО: D