我的计算器打印出1,而不是1-1-1

时间:2014-05-25 15:29:05

标签: ios objective-c

我正在Xcode中构建一个计算器。当我按下一个按钮时,它会打印出1.当我按下1,3次时,我希望它是111,但它仍然是1。

CODE:

-(IBAction)one:(id)sender{
    NSString *myLabel = @"0";
    NSString *myNumber = @"1";
    calcLabel.text = myLabel;
    if ([calcLabel.text isEqualToString:@"0"]) {
        myLabel = @"";
    }
    myLabel = [myLabel stringByAppendingFormat:[NSString stringWithFormat:@"%@", myNumber]];
    NSLog(@"%@", myLabel);
    calcLabel.text = myLabel;
    if (calcLabel.text.length == 8) {
        calcLabel.text = @"TOO LONG";
    }
}

1 个答案:

答案 0 :(得分:0)

你的第三行,

calcLabel.text = myLabel;
每次按下一个键时,

重置标签。您还从不使用标签中已有的文字,除了检查它是否为@"0"

也许删除第三行并将第一行更改为

NSString *myLabel = calcLabel.text;

并且可能会将if语句更改为

if ([myLabel isEqualToString:@"0"]) {

或者,或者:

- (IBAction)one:(id)sender {
    [self appendDigit:@"1"];
}

- (void)appendDigit:(NSString *)digit {
    if ([calcLabel.text isEqualToString:@"0"]) {
        calcLabel.text = @"";
    }
    calcLabel.text = [calcLabel.text stringByAppendingString:digit];
    NSLog(@"%@", calcLabel.text);
    if (calcLabel.text.length >= 8) {
        calcLabel.text = @"TOO LONG";
    }
}