0

Helo,我还是 Core Data 的新手,突然陷入了这些简单的代码中:

Purchased* newItem=[NSEntityDescription insertNewObjectForEntityForName:@"Purchased" inManagedObjectContext:self.managedObjectContext];
[newItem setPurchasedDate:[NSDate date]];
[newItem setLastOpen:[NSDate date]];
if ([self.managedObjectContext save:&error])
{
   //do something if the save success
}

好吧,从上面的代码中我得到了一个 'NSInvalidArgumentException',原因:'-[Purchased setPurchasedDate:]: unrecognized selector sent to instance. 正如我们所看到的,异常指向

[newItem setPurchasedDate:[NSDate date]];

这是正确的。当我尝试逐步调试此代码时,程序会在调用此消息时中止。

我想知道为什么,因为我的模型和我的购买类没有错,我已经检查了一百次。我试图通过覆盖 -(void)awakeFromInsert() 方法来更改设置值的位置,它会触发相同的异常。有人有建议吗?之前谢谢。

4

1 回答 1

0

检查这个:

您的托管对象模型的Purchased实体有一个类型Date为的属性purchasedDate,另一个名为lastOpen

在您的Purchased.h文件中,您有

@property (nonatomic, strong) NSDate *purchasedDate;
@property (nonatomic, strong) NSDate *lastOpen;

在您的Purchased.m文件中,您有

@dynamic purchasedDate;
@dynamic lastOpen;

确保您#import "Purchased.h"在创建新实例的文件中。

于 2012-12-09T16:38:55.287 回答