我正在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";
}
}
答案 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";
}
}