0

我正在为一个简单的计算器应用程序进行更新。更新包括历史显示。我的问题是,当我输入数字时,日志显示会忽略第一个数字,但会完美记录其余所有数字。“示例”,如果我输入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;

    }

}

提前致谢!

4

1 回答 1

1

您丢失第一个数字的原因是第一次if (userIsInTheMiddleOfTypingANumber) {返回 false。

对于第一次按下,您的变量userIsInTheMiddleOfTypingANumberNO,因此不会被记录。第二次调用digitPressed:will haveuserIsInTheMiddleOfTypingANumber = YES;并且 will log。

于 2013-07-05T14:21:06.150 回答