我在核心数据中有一些实体,它们都是具有 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 获得了那个日期,并且我检查了我的代码,发现我认为没有任何问题。
真的需要一些帮助!
非常感谢!