我正在寻找创建一个 iOS 计算器,只需使用 UITextField。例如,例如;有人可能会在 UITextField 中输入“6 - 3 x 2”,然后点击“完成”或“开始”等。这将计算答案并将其显示在 UIAlertView 中。
因此,首先我认为 UITextField 文本必须分成不同的部分,因此 '6' '-' '3' '*' '2' 将是来自 UITextField 文本输入的分隔字符串。我将如何像上面提到的那样分离文本?
然后我如何使用这些信息来计算答案并显示它?
我正在寻找创建一个 iOS 计算器,只需使用 UITextField。例如,例如;有人可能会在 UITextField 中输入“6 - 3 x 2”,然后点击“完成”或“开始”等。这将计算答案并将其显示在 UIAlertView 中。
因此,首先我认为 UITextField 文本必须分成不同的部分,因此 '6' '-' '3' '*' '2' 将是来自 UITextField 文本输入的分隔字符串。我将如何像上面提到的那样分离文本?
然后我如何使用这些信息来计算答案并显示它?
使用 GCMathParser http://apptree.net/parser.htm
它接受一个 NSString 作为输入并为你评估它。
正如 Danh 所说,您也可以使用 DDMathParser https://github.com/davedelong/DDMathParser
一个例子(来自文档)
NSString* mathstring = @"tan(dtor(45))";
double result = [mathstring evaluateMath]; // returns 0.999999999999...
因此,您只需向evaluateMath
要解析的 NSString 发送消息。就是这样)
你也可以这样使用 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);
但我不确定 tan 之类的功能。更多信息在这里。