我正在为一个简单的计算器应用程序进行更新。更新包括历史记录显示。我的问题是,当我输入一个数字时,日志显示忽略了第一个数字,但完全记录了所有其余数字。 “示例”,如果我键入1234567 + 1234
...日志显示“234567 + 234”。所以第一个数字永远不会存在。
- (IBAction)digitPressed:(UIButton*)sender;
{
NSString *digit = [[sender titleLabel] text];
NSRange range = [[display text] rangeOfString:@"."];
if (userIsInTheMiddleOfTypingANumber) {
if ( ! ([digit isEqual:@"."] && (range.location != NSNotFound)))
[display setText:[[display text]stringByAppendingString:digit]];
self.logDisplay.text = [self.logDisplay.text stringByAppendingFormat:@"%@", digit];
} else {
if ([digit isEqual:@"."]) {
[display setText: @"0."];
}
else {
[display setText:digit];
}
userIsInTheMiddleOfTypingANumber = YES;
}
}
提前致谢!
答案 0 :(得分:1)
你丢失第一个数字的原因是if (userIsInTheMiddleOfTypingANumber) {
第一次返回false。
首次按下您的变量userIsInTheMiddleOfTypingANumber
为NO
,因此不会记录。 digitPressed:
的第二次调用将有userIsInTheMiddleOfTypingANumber = YES;
并将记录。