3

UITextField を使用するだけで、iOS 電卓を作成しようとしています。たとえば、誰かが UITextField に「6 - 3 x 2」と入力し、「完了」または「実行」などを押すと、答えが計算され、UIAlertView に表示されます。

したがって、最初に、UITextField テキストをさまざまなセクションに分割する必要があるため、'6' '-' '3' '*' '2' は UITextField テキスト入力から分離された文字列になります。上記のようにテキストを分離するにはどうすればよいですか?

この情報を使用して、答えを計算し、表示するにはどうすればよいでしょうか?

4

2 に答える 2

5

GCMathParser http://apptree.net/parser.htmを使用

入力として NSString を受け取り、それを評価します。

ダンが言ったように、DDMathParser https://github.com/davedelong/DDMathParserも使用できます

例(ドキュメントから)

NSString* mathstring = @"tan(dtor(45))";
double result = [mathstring evaluateMath];    // returns 0.999999999999...

evaluateMathしたがって、解析したい NSStringにメッセージを送信するだけです。それでおしまい)

于 2012-04-21T17:22:39.800 に答える
0

NSPredicate を次のように使用することもできます。

NSPredicate * parsed = [NSPredicate predicateWithFormat:@"22/7.0 + (13*42) - 1024 = 0"];
NSExpression * left = [(NSComparisonPredicate *)parsed leftExpression];
NSNumber * result = [left expressionValueWithObject:nil context:nil];
NSLog(@"result: %@", result);

しかし、タンなどの機能についてはよくわかりません。詳細はこちら

于 2012-04-23T03:51:26.630 に答える