【发布时间】:2012-11-04 08:55:28
【问题描述】:
我在全新安装的 Mountain Lion 上使用 Xcode 4.5。编译器是 LLVM4.1,我的项目使用的是 ARC。 (我过去曾涉足过 Xcode,但有一段时间没有接触过它。
我的问题:
我知道在较新版本的 Xcode 中不再需要包含 @synthesize 指令(果然,当我从 .xib 中的 UI 组件 ctrl-drag 到 .h 文件时,指令不会在 .m 文件中创建),但没有它们我无法访问这些属性,而是得到“未知接收器 xxx”错误。
简单示例:
我创建了一个带有标签 ('myLabel') 和按钮 ('myButton') 的 Single View iPhone 项目。我从 ViewController.xib 中的 UILabel ctrl-拖动到 ViewController.h 以创建以下属性:
@property (strong, nonatomic) IBOutlet UILabel *myLabel;
我也通过拖放创建了按钮动作。
在 .m 文件中,我在 myButton 方法中编写了以下代码:
- (IBAction)myButton:(id)sender {
NSLog(@"The label text is %@", [myLabel text]);
}
结果:
这给了我一个编译时错误(“Unknown receiver myLabel”)。
我仍然可以使用下划线(即 [_myLabel 文本])或添加“@synthesize myLabel;”来访问我的属性手动在 .m 文件的顶部,但我认为我不需要这样做,或者应该为我完成。谁能解释我在代码中做错了什么(或者如果这是由于我需要调整的某些设置?)
谢谢
附言我注意到我的 .m 文件现在在顶部也有自己的 @interface 块(大概是为了声明私有变量?)
【问题讨论】:
标签: xcode xib xcode4.5 synthesize