我是Core Data的新手,还有一些我还不了解的问题。
我有一个名为GCS的实体(NSManagedObject for Core Data的子类):
@implementation GCS
@dynamic eye;
@dynamic ...
@dynamic ...
当我执行此操作时,它可以正常使用Core Data:
GCS *failedBankDetails = [NSEntityDescription
insertNewObjectForEntityForName:@"GCS"
inManagedObjectContext:context];
failedBankDetails.eye = [NSNumber numberWithInt:12];
但是,在另一个类中,我有一个GCS类型的属性:
@interface ModelManager : NSObject
{
GCS *tempGCS;
}
@property (nonatomic, retain) GCS *tempGCS;
...
在ModelManager的方法中我尝试了这个:
tempGCS.eye = [NSNumber numberWithInt:0];
但提出例外: 无法在NSManagedObject类'GCS'上调用指定的初始值设定项 - [GCS setEye:]:无法识别的选择器发送到实例0x4d32ac0
为什么我现在不能使用点符号?我认为@dynamic是线索,但我不应该改变它,因为我需要将它用于Core Data,对吧?
请帮帮我,抱歉我的英语。 谢谢!
答案 0 :(得分:2)
点符号与它无关,如果你调用[tempGCS setEye:...]
,你会得到同样的错误。错误是您在initWithEntity:insertIntoManagedObjectContext:
中创建对象时忽略了调用tempGCS
;特别是,[[GCS alloc] init]
不正常工作。