合成属性的错误编译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
答
@synthesize财产申报的属性必须在执行方面
意味着你没有正确地把它放在@implementation和@end之间。你能发布你的.m文件吗?
谢谢,修正了它:) – espekia 2010-10-01 19:27:36
请注意,这个答案有一个潜在的危险错误:'alertView'和'label'属性使用'_alertView'和'_label'自动合成实例变量(ivars)。由于您声明了额外的'alertView'和'''''''''''''''''',您最终会得到两组:以'_'开头的属性,以及与属性本身具有相同名称的属性。要解决这个问题,只需删除花括号之间的段,因为最近的Xcode/Objective-C版本会自动综合属性,并且不需要你明确声明支持ivar。 – 2013-07-22 09:09:42