目前我正在製作一個計算器,允許用戶輸入他們想要的公式。防止計算器語法錯誤崩潰? Xcode
Ex。 ((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))[2個括號]
兩種方式崩潰。這是許多不同語法錯誤的一個例子。有沒有辦法輕鬆防止這種情況?
。
附加信息: 這是第二個方法捕捉到該錯誤的方式:
#ifdef __COCOA_IMPLEMENTATION__
[NSException raise:@"Error in expression" format:@"error = %s", errStr];
#endif
謝謝:d
您先生。是個天才。我不能夠感謝你! – 2012-03-16 00:57:13
還有DDMathParser,它應該是現代的,並採取NSError。看看這裏:https://github.com/davedelong/DDMathParser – bryanmac 2012-03-16 00:59:56
沒錯,這很好地解決了我的問題。我可能最終會使用它,但現在我擁有它的方式是合適的 – 2012-03-16 01:49:39