' - [__ NSDate managedObjectContext]:无法识别的选择器发送到实例

时间:2012-02-09 16:33:59

标签: core-data nsdate nsmanagedobjectcontext invalid-argument

我在核心数据中有一些实体,它们都是具有NSDate属性的超类的子类,

当我保存它们时,所有其他工作都很顺利,

但是当我保存它时,其中一个似乎会出现概率崩溃,

我发现原因是它的NSDate属性继承自它的超类

当我为NSDate属性设置日期值时,它会崩溃并注销:

2012-02-10 00:24:34.474 EasyWallet[37772:707] -[__NSDate managedObjectContext]: unrecognized 
selector sent to instance 0xdc54c30
2012-02-10 00:24:34.483 EasyWallet[37772:707] *** Terminating app due to uncaught exception 
'NSInvalidArgumentException', reason: '-[__NSDate managedObjectContext]: unrecognized 
selector sent to instance 0xdc54c30'
*** First throw call stack:
(0x344268bf 0x346761e5 0x34429acb 0x34428945 0x34383680 0x32f8811b 0x32f8904b 0x32f8aeb5   
0x32f83161 0x32f7e8cf 0x3c507 0x34380435 0x377ea9eb 0x377ea9a7 0x377ea985 0x377ea6f5 
0x377eb02d 0x377e950f 0x377e8f01 0x377cf4ed 0x377ced2d 0x30c01df3 0x343fa553 0x343fa4f5 
0x343f9343 0x3437c4dd 0x3437c3a5 0x30c00fcd 0x377fd743 0x29b1 0x2970)
terminate called throwing an exception(gdb) 

这是我保存这些属性的代码

... // get keys
 self.rowKeys = [NSMutableArray arrayWithObjects:@"personName",@"amount",@"incomingAccount",
                    @"date",@"returnDate",@"isReturned",@"memo",nil];
... // saving
for (int i = 0; i < [self.rowKeys count]; i++) {
    NSLog(@"%d: %@",i,[rowValues valueForKey:key(i)]);
    [newMo setValue:[self.rowValues valueForKey:key(i)] forKey:key(i)];
}

键(i)这里是一个宏定义:

#define key(X) [rowKeys objectAtIndex:(X)]

并且这样的日期打印出来,毫不奇怪。

2012-02-10 16:00:00 +0000

当涉及到保存“日期”属性时,它会崩溃,但只会传递的次数减少。

我从UIDatePicker那里得到了那个日期,我检查过我的代码,发现我没想错。

真的需要一些帮助!

非常感谢!

1 个答案:

答案 0 :(得分:2)

我已经修好了。

问题是我犯了一个愚蠢的错误,就是在某个非常秘密的地方向非NSDate ojbect发送一些NSDate方法。

请注意您的代码,尤其是令人困惑的部分。