0

我刚开始在 xcode 上为 ios 6 开发。但是作为一个新手开发者,我遇到了一个问题。按照“开始 ios5 开发:探索 ios sdk”一书第 3 章中的指南,“按钮乐趣”示例。

我已经在 .h 代码中声明的标识符“statusText”有问题。

到目前为止,这是我的代码,任何帮助将不胜感激。先感谢您。

我的 BIDViewController.h 是这样的

#import <UIKit/UIKit.h>

@interface BIDViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *
statusText;
- (IBAction)buttonPress:(UIButton *)sender;

@end`

我的 BIDViewController.m 就是这样

#import "BIDViewController.h"

 @interface BIDViewController ()

 @end

 @implementation BIDViewController

 - (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
 }

 - (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

 - (IBAction)buttonPress:(UIButton *)sender {
    NSString *title = [sender titleForState:<#(UIControlState)#>];
    statusText.text = [NSString stringWithFormat:@"%@ button pressed.", title];
}
@end

我已经关注了这本书,但似乎无法理解为什么会发生这种情况,请帮忙。

4

2 回答 2

2

好吧,对于初学者来说,这应该只有一行

@property (weak, nonatomic) IBOutlet UILabel *statusText;

现在,当你声明一个属性时,你不会得到一个这样命名的变量,除非你像这样合成它:

@implementation Class

@synthesize propertyName;

@end

这就是 statusText 不存在的原因。

你有三个选择:

  1. 像这样合成statusText,这样你就可以使用那个 ivar。
  2. 而不是直接访问 var,而是像这样访问属性self.statusText
  3. XCode 正在创建它自己的变量,它可能命名为_statusText,像这样访问它以直接访问变量。

您也可以使用 2 和 3 的组合

于 2012-09-25T16:15:24.487 回答
0

我正在使用同一本书,也遇到了这个问题。我已经学会在 .m 文件中使用下划线

- (IBAction)buttonPressed:(UIButton *)sender {
    NSString *title = [sender titleForState:UIControlStateNormal];
    **_statusText**.text = [NSString stringWithFormat:@"%@ button pressed.", title];

}
于 2013-03-01T19:31:55.813 回答