关于iphone:在类型对象上找不到属性

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;看看这是否真的有效——可能会有一些启发。