XCode 4.4自动@Synthesize在XCode 4.3项目上失败

时间:2012-07-29 12:21:54

标签: xcode synthesize

就这么简单。

奔跑狮子。

  1. 我刚升级到XCode 4.4
  2. 加载了我最新的XCode 4.3项目文件
  3. 注释掉了一行@synthesize代码
  4. 并且错误比比皆是。 :(
  5. 已验证的编译器设置为“LLVM 4.0”。

    然后我做了相同的测试,但在XCode 4.4中创建了一个新项目,瞧!自动@synthesize在4.4项目中工作。

    自动@synthesize 似乎也适用于添加到代码中的属性。但是现有的旧错误会产生错误。

    其他人有此体验吗? 还有其他我应该检查的事情吗?

    我真的希望自动生成功能能够正常工作。

    感谢。

2 个答案:

答案 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似乎对此更加严格。