2

我對核心數據的一些實體,它們是一個超類具有的NSDate屬性,「 - [__ NSDate的managedObjectContext]:無法識別的選擇發送到實例

的所有子類和其他所有工作得很好,當我救他們,

,但他們中的一個將看似中概率崩潰,當我保存它,

,我發現原因是來自它的父類繼承了它的NSDate屬性,

當我設定的日期值爲NSDate a ttribute,它崩潰並退出登錄:

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)]; 
} 

關鍵(我)這是一個宏定義:

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

而且日期打印出來就是這樣,毫不奇怪。

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

當談到保存「日期」屬性,它崩潰了,但它剛剛通過的次數更少。

我從UIDatePicker獲得了這個日期,並且檢查了我的代碼,發現我認爲沒有錯。

真的需要一些幫助!

非常感謝!

回答

2

我修復了它。

問題是我犯了一個非常錯誤的發送NSDate方法到非NSDate ojbect,在一些非常祕密的地方。

只要注意您的代碼,特別是易混淆的部分。

相關問題