我正在学习 iOS 的 Objective-C 编程,但遇到了一个小问题。我正在构建一个基本的 RPN 计算器,并且我正在努力让用户可以输入浮点数。但是,我需要防止他们输入非法浮点数(如 1324.343.34)。我尝试添加一个 BOOL 和一个 if 语句,但它太乱了,所以我只是为他们按下“。”添加了一个单独的操作。不幸的是,即使decimalPressed动作是第二个,它仍然在数字按下动作之前,我需要它在之后。有任何想法吗?
- (IBAction)digitPressed:(UIButton *)sender
{
NSString *digit = [sender currentTitle];
if (self.userIsInTheMiddleOfEnteringANumber) {
if (self.dotPressed == NO || ([digit isEqualToString:@"."]==NO)) {
self.display.text = [self.display.text stringByAppendingString:digit];
self.dotPressed = NO;
}
} else {
self.display.text = digit;
self.userIsInTheMiddleOfEnteringANumber = YES;
}
}
- (IBAction)decimalPressed:(UIButton *)sender {
self.dotPressed = YES;
}