我正在从 Programming In Objective-C 2.0 书中制作一个分数计算器应用程序。我正在为 Lion 使用 XCode 4.1。我已经完全成功地没有在代码中输入任何错误。但是当我在应用程序运行时按下数字按钮时,标签不会输入任何文本。当我按下数字按钮时,它应该找到 UIButton senders 标签(我已分配)
-(IBAction)clickDigit:(UIButton *)sender {
int digit = sender.tag;
[self processDigit:digit];
}
并将其发送到此代码:
-(void)processDigit:(int)digit {
currentNumber = currentNumber * 10 + digit;
[displayString appendString:[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
NSLog(@"Processed");
}
控制台确实打印已处理。说明这个按钮是起作用的,所以问题出在这行代码:
[displayString appendString:[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
display 是一个 UILabel,它是一个实例变量,但它不是 IBOutlet,而是在其属性中声明为 IBOutlet。
@property (nonatomic, retain)IBOutlet UILabel *display;
我已经使用连接到代码助手的东西连接了 .xib 屏幕上的标签。我可以从字面上将它与声明联系起来。所以我把它和房产联系起来。
现在,问题在于 display 是一个 UILabel 并且它的 text 属性需要一个 NSString 而不是 NSMutableString 对吗?但是一个 NSString 不能附加一个字符串和我需要它为这个应用程序执行的许多其他方法。我怎样才能使这项工作?