合成属性的错误编译iPhone应用程序

问题描述:

我在苹果公司的网站上建立你的第一个iPhone应用程序的tutotial以下时,因为这是一场我想参与英寸合成属性的错误编译iPhone应用程序

我完成了应用程序,但后来决定将其与另一个应用程序合并。 (一个简单的改变图像时,点击,当显示一个文本框中的按钮时,所以不太棘手,以便合并)

我已经复制了大部分代码成功,但某处我出错了6次我得到错误

@synthesize property must be in implementation context 

为我合成的6件事情。

我觉得我已经复制了所有的东西,我已经检查了合成物品的所有实例,所以他们肯定在那里,所以我不知道为什么会发生这种情况。

当我把那些造成的implemeation cointext错误的行(即@implemtation和@end之间),我得到

no declaration of property 'X' found in the interface 

其中x是的我正在合成的东西的名字。

我如何把它放在界面中?好像我已经将所有Interface Builder组件连接到相关的代码位了。

你必须在你的界面

@interface CustomAlertViewController : UIViewController { 
    UIView *alertView; 
    UILabel *label; 
} 
@property (nonatomic, retain) IBOutlet UIView *alertView; <--- Property 
@property (nonatomic, retain) IBOutlet UILabel *label; <--- Property 
+0

谢谢,修正了它:) – espekia 2010-10-01 19:27:36

+0

请注意,这个答案有一个潜在的危险错误:'alertView'和'label'属性使用'_alertView'和'_label'自动合成实例变量(ivars)。由于您声明了额外的'alertView'和'''''''''''''''''',您最终会得到两组:以'_'开头的属性,以及与属性本身具有相同名称的属性。要解决这个问题,只需删除花括号之间的段,因为最近的Xcode/Objective-C版本会自动综合属性,并且不需要你明确声明支持ivar。 – 2013-07-22 09:09:42

@synthesize财产申报的属性必须在执行方面

意味着你没有正确地把它放在@implementation和@end之间。你能发布你的.m文件吗?