就这么简单。
奔跑狮子。
已验证的编译器设置为“LLVM 4.0”。
然后我做了相同的测试,但在XCode 4.4中创建了一个新项目,瞧!自动@synthesize在4.4项目中工作。
自动@synthesize 似乎也适用于添加到代码中的新属性。但是现有的旧错误会产生错误。
其他人有此体验吗? 还有其他我应该检查的事情吗?
我真的希望自动生成功能能够正常工作。
感谢。
答案 0 :(得分:5)
错误不是您声明属性的方式,而是您使用它的方式。
自动合成属性会创建一个支持商店,默认情况下一个前导下划线。
因此,在您的代码中,当您将属性声明为:
时@property (nonatomic, strong) UILabel *sectorLabel;
并且你自动sythesize - 这样的东西是由编译器为你自动生成的:
@synthesize sectorLabel = _sectorLabel;
现在您可以通过该属性访问它:
self.sectorLabel;
或者,您可以使用以下方式直接访问后备存储:
_sectorLabel;
答案 1 :(得分:1)
解决了!
所以这就是我所做的。
<强> ViewController.h 强>
@interface ViewController : UIViewController
// Public:
@property (nonatomic, strong) UILabel *sectorLabel;
@end
<强> ViewController.m 强>
@implementation ViewController
//@synthesize sectorLabel;
然后弹出这个错误。
ViewController.m:48:2:使用未声明的标识符'sectorLabel';没有 你的意思是'_sectorLabel'?
它解决了我将代码更改为:
的那一刻self.sectorLabel
XCode 4.3编译和工作正常,无需拥有'自我'。关键词。但是XCode 4.4似乎对此更加严格。