NSDate类型属性的核心数据设置值

时间:2012-12-09 16:00:00

标签: objective-c core-data nsdate

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',原因是:' - [buysed setPurchasedDate:]:发送到实例的无法识别的选择器。我们可以看到异常指向

[newItem setPurchasedDate:[NSDate date]];

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

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

1 个答案:

答案 0 :(得分: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"