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

编译iPhone应用程序时合成属性错误,iphone,objective-c,xcode,compiler-errors,Iphone,Objective C,Xcode,Compiler Errors,我正在关注苹果网站上关于构建你的第一个iPhone应用程序的指导,因为这是我想参与的一个领域 我完成了应用程序,但随后决定将其与另一个应用程序合并。(点击时只需更改图像,点击按钮时显示文本框中的文本,因此不太难组合) 我已经成功地复制了大部分代码,但在某个地方我出现了6次错误 @synthesize property must be in implementation context 对于我正在合成的6件事情 我觉得我把所有的东西都复制了一遍,我检查了所有合成项目的实例,所以它们肯定在那里,所

我正在关注苹果网站上关于构建你的第一个iPhone应用程序的指导,因为这是我想参与的一个领域

我完成了应用程序,但随后决定将其与另一个应用程序合并。(点击时只需更改图像,点击按钮时显示文本框中的文本,因此不太难组合)

我已经成功地复制了大部分代码,但在某个地方我出现了6次错误

@synthesize property must be in implementation context
对于我正在合成的6件事情

我觉得我把所有的东西都复制了一遍,我检查了所有合成项目的实例,所以它们肯定在那里,所以我不知道为什么会发生这种情况

当我将导致错误的行放在implement cointext中时(即@implemtion和@end之间),我得到

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


如何将其放入界面中?似乎我已经将所有Interface Builder组件链接到了相关的代码位。

您必须在界面中声明一个属性

@interface CustomAlertViewController : UIViewController {
    UIView  *alertView;
    UILabel *label;
}
@property (nonatomic, retain) IBOutlet UIView *alertView; <--- Property
@property (nonatomic, retain) IBOutlet UILabel *label;    <--- Property
@接口CustomAlertViewController:UIViewController{
UIView*警报视图;
UILabel*标签;
}
@属性(非原子,保留)IBUIView*alertView @synthesis属性必须在实现上下文中


这意味着您没有正确地将它放在@implementation和@end之间。你能发布你的.m文件吗?注意,这个答案有一个潜在的危险错误:
alertView
label
属性使用
\u alertView
\u label
实例变量(IVAR)自动合成。由于您要声明附加的
alertView
标签
ivar,因此最终会得到两个集合:以支持属性的
\uu
开头的集合,以及与属性本身具有相同名称的集合。要解决这个问题,只需删除大括号之间的段,因为最新的Xcode/Objective-C版本自动合成属性,不需要专门声明支持ivar。
@interface CustomAlertViewController : UIViewController {
    UIView  *alertView;
    UILabel *label;
}
@property (nonatomic, retain) IBOutlet UIView *alertView; <--- Property
@property (nonatomic, retain) IBOutlet UILabel *label;    <--- Property