現在、私はユーザーが望む数式を入力できるようにする電卓を作っています。電卓の構文エラークラッシュを防止しますか? Xcode
Ex。 ((1 + 1)** 9)+2)
これはうまく動作しますが、これを計算するには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))2つのブラケット]
両方方法クラッシュ。これは、さまざまな構文エラーの一例です。簡単にこれを防ぐ方法はありますか?
。
追加情報: これは、第2の方法は、エラーをキャッチ方法です:
#ifdef __COCOA_IMPLEMENTATION__
[NSException raise:@"Error in expression" format:@"error = %s", errStr];
#endif
THANKS:D
あなたの先生。天才です。私は十分にあなたに感謝できません! –
DDMathParserもあります.DDMathParserは現代的で、NSErrorが必要です。ここで見てください:https://github.com/davedelong/DDMathParser – bryanmac
右、これは私の問題をかなりうまく解決しました。私は後でそれを使用して終わるかもしれませんが、今のところ私はそれをalight –