Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在类型为的对象上找不到属性_Iphone_Ios_Properties - Fatal编程技术网

Iphone 在类型为的对象上找不到属性

Iphone 在类型为的对象上找不到属性,iphone,ios,properties,Iphone,Ios,Properties,我有一个简单的问题: 我有一个NSManagedObject子类,我已经使用了一段时间,它工作得非常好。 今天,我用相应的iVar向它添加了一个新属性。该属性是一个简单(非原子,保留)NSString*。 和往常一样,我在属性中添加了@synthesis来生成setter和getter函数。 但是,我无法使用新定义的属性!!!我一直收到“在类型的对象上找不到属性”错误,生成失败 下面是一些代码块,它们可以解决问题: //import the core data header first Core

我有一个简单的问题:

我有一个NSManagedObject子类,我已经使用了一段时间,它工作得非常好。 今天,我用相应的iVar向它添加了一个新属性。该属性是一个简单(非原子,保留)NSString*。 和往常一样,我在属性中添加了@synthesis来生成setter和getter函数。 但是,我无法使用新定义的属性!!!我一直收到“在类型的对象上找不到属性”错误,生成失败

下面是一些代码块,它们可以解决问题:

//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 //首先导入CoreData/CoreData.h中的core数据头 @接口联系人:NSManagedObject { NSString*联系人ID; NSString*名字; NSString*myDevMod; } @属性(非原子,保留)NSString*contactID; @属性(非原子,保留)NSString*firstName; @属性(非原子,保留)NSString*myDevMod; @结束 以及相应的.m实现:

#import "Contact.h" @implementation Contact @synthesize contactID, firstName, myDevMod; #导入“Contact.h” @实施联系人 @合成联系人ID,名字,myDevMod; 以及使用Contact类的代码:

#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]; #在开始时导入“Contact.h”// 联系人*a联系人=[[Contact alloc]init]; aContact.contactID=someId//很好用 aContact.firstName=someName//很好用 aContact.myDevMod=@//这就是错误发生的地方!! [接触剂量;接触剂量]; [接触释放]; 你认为可能是什么错误


提前感谢您的支持。

奇怪的是,该网站不允许我添加评论,因此:

评论:
听起来很奇怪。我要做的第一件事是删除@property行和@synthesis行,这样就可以自动创建getter和setter。还可以尝试:aContact.myDevMod=someName;看看这是否真的有效-可能会有一些启示。

我昨晚也遇到了同样的问题。我花了大约5个小时才修好。我的第一次尝试是使用菜单编辑器->创建NSManagedObject子类再次创建模型类

但这没有帮助。即使我事先删除了这些类,Xcode也无法识别这些属性。我也删除了模型,并用相同的名称重建了它。并再次创建了NSManagedObject子类。没有帮助。然后我再次删除了模型和MOS,并从头开始构建它!但是名字不同!我又花了很长时间修改代码,但在那之后一切似乎都很正常。现在我可以添加、更改和删除模型中的属性以及NSManagedObject子类的属性,Xcode可以再次识别它们


但是,孩子,这几乎把我逼疯了!!!我还是不知道发生了什么

我的经验是,需要重新创建的不是模型或对象。
大多数情况下,您可以重新创建正在使用的文件。为每个.h.m文件创建一个新的NSView视图,并将信息复制到新文件中,它将起作用。

是管理对象的
contactID
firstName
myDevMod
属性,或者不属于核心数据结构的单独属性?您是否仍然会在分配字符串对象(
[NSString stringWithString:@“]
)而不是静态的
@“
)时出错?创建getter和setter的是
@property
@synthesis
?如果删除了这些行,那么所有的点符号调用都将无效。对,如果我对myDevMod或任何其他属性进行注释,我将无法请求它!我怀疑与CoreData有关,但我还不确定。。。