Property not found on object of type
我有一个简单的问题:
我有一个nsmanagedObject子类,我已经使用了一段时间,它工作得非常好。今天,我用相应的ivar为它添加了一个新的属性。属性是简单的(非原子的,保留的)nsstring*。像往常一样,我在属性中添加了@synthesis来生成setter和getter函数。但是,我无法使用新定义的属性!!!!我不断得到"在类型的对象上找不到属性"错误,我的生成失败。
下面是一些可以清除问题的代码块:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //import the core data header first CoreData/CoreData.h @interface Contact : NSManagedObject { NSString *contactID; NSString *firstName; NSString *myDevMod; } @property (nonatomic,retain) NSString *contactID; @property (nonatomic,retain) NSString *firstName; @property (nonatomic,retain) NSString *myDevMod; @end |
以及相应的.m实现:
1 2 3 4 5 | #import"Contact.h" @implementation Contact @synthesize contactID, firstName, myDevMod; |
以及使用contact类的代码:
1 2 3 4 5 6 7 8 | #import"Contact.h" //at the start Contact *aContact = [[Contact alloc] init]; aContact.contactID = someId; //works perfectly fine aContact.firstName = someName; //works perfectly fine aContact.myDevMod = @""; //THIS IS WHERE THE ERROR OCCURS!! [aContact doSomethingHere]; [aContact release]; |
你认为错误可能是什么??
提前感谢您的支持。
我的经验是,不需要重新创建模型或对象。大多数情况下,您可以重新创建正在使用的文件。创建一个新的nsview,查看每个.h和.m文件,并将信息复制到新文件中,这样就可以工作了。
昨晚我也遇到了同样的问题。我花了大约5个小时才修好。我的第一次尝试是使用menue editor->create nsmanagedObject子类再次创建模型类…
但这没有帮助。即使我事先删除了类,xcode也无法识别属性。我也删除了模型,并用相同的名称重新构建了它。并再次创建nsmanagedObject子类。没有帮助。然后我又删除了模型和mos,从头开始构建它!但是名字不同!我又花了很长时间修改代码,但之后一切似乎都正常了。现在,我可以在模型中添加、更改和删除属性,以及属性nsmanagedObject子类和xcode再次识别它们。
但是,孩子,它几乎把我逼疯了!!!!我还是不知道发生了什么!
奇怪的是,网站不允许我添加评论,所以:
评论:听起来怪怪的。我首先尝试删除@property行和@synthesis行,这样getter和setter就可以自动创建了。还可以尝试:acontact.mydevmod=somename;看看这是否真的有效——可能会有一些启发。