У меня есть некоторые сущности в основных данных, и все они являются подклассами суперкласса, который имеет атрибут 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, и я проверил свои коды, не находя ничего плохого, я думаю.
Действительно нужна помощь!
Большое спасибо!