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()方法来改变设置值的位置,它会触发相同的异常。有人有建议吗?谢谢。
答案 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"
。