我现在开始学习如何进行一些 iOS 开发,目前我正在编写 Apress 入门 IOS6 书籍。
在第二章中有一个简单的教程来显示两个按钮和一个标签,当一个按钮被按下时,它会显示在被按下的标签上。
我已经完成了本教程,但它提出了一个我找不到答案的问题。
本教程使用 ARC(自动引用计数)以防万一。
这是代码,
头文件:
#import <UIKit/UIKit.h>
@interface MTMViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
- (IBAction)buttonPressed:(UIButton *)sender;
@end
和 m 文件:
#import "MTMViewController.h"
@implementation MTMViewController
- (IBAction)buttonPressed:(UIButton *)sender {
NSString *title = [sender titleForState:UIControlStateNormal];
NSString *plainText = [NSString stringWithFormat:@"%@ button pressed.", title];
statusLabel.text = plainText;
}
@end
以上是它在书中的显示方式,但是在 Xcode 中执行教程时,我无法使用以下行进行编译:
statusLabel.text = plainText;
而是不得不将其更改为:
_statusLabel.text = plainText;
完成此操作后,代码编译并运行良好,我试图通过返回教程查看我是否遗漏任何内容但没有看到任何内容来弄清楚为什么会发生这种情况。
谁能解释为什么书中的代码没有编译以及为什么我必须在变量前面添加下划线?这是正确的还是我做错了什么?