2011-07-12 120 views
41

我在保存到Xcode中的Core數據對象時出錯。核心數據保存錯誤(NSValidationErrorKey,Cocoa錯誤1570)保存NSDate

Xcode說錯誤是在NSDate變量'datum'中,但我已經嘗試了幾乎所有東西。 錯誤是:

2011-07-12 18:01:29.068 WeekLijstje[3205:207] Core Data Save Error 
NSValidationErrorKey datum 
NSValidationErrorPredicate (null) 

NSValidationErrorObject 
<DagLijst: 0x6e2fcd0> (entity: DagLijst; id: 0x6e2fd30 <x-coredata:///DagLijst/t99F423FC-AAE9-4692-9264-EF0FF7A020572> ; data: { 
    Voedsel = nil; 
    datum = nil; 
    hoeveelheid = 0; 
    punten = 0; 
}) 
NSLocalizedDescription:The operation couldn’t be completed. (Cocoa error 1570.) 

小一小段代碼片段:

 DagLijst *newDaglijst = [NSEntityDescription insertNewObjectForEntityForName:@"DagLijst" inManagedObjectContext:self.managedObjectContext]; 

     NSDate *selDatum = [NSDate date]; 
     newDaglijst.punten = [NSNumber numberWithInteger:10]; 
     newDaglijst.hoeveelheid = [NSNumber numberWithInt:100]; 
     newDaglijst.Voedsel = geselecteerdVoedsel; 
     newDaglijst.datum = selDatum; 
     NSError *error = nil; 
     if (![newDaglijst.managedObjectContext save:&error]) { 
... 

而且班上DagLijst對象:

@interface DagLijst : NSManagedObject { 
@private 
} 
@property (nonatomic, retain) NSDate * datum; 
@property (nonatomic, retain) NSNumber * punten; 
@property (nonatomic, retain) NSNumber * hoeveelheid; 
@property (nonatomic, retain) Voedsel *Voedsel; 

@end 

所以你可以看到,我把一個NSDate進入「基準'變量。但在執行過程中,我仍然遇到錯誤。 。

回答

132

可可錯誤1570意味着必填字段未填寫 在這種情況下,您有兩個attribues是nilVoedseldatum

我看到你的代碼:

newDaglijst.Voedsel = geselecteerdVoedsel; 
newDaglijst.datum = selDatum; 

檢查geselecteerdVoedselselDatum不爲零,或者他們是overreleased和光潔度是零。 如果它們是可選數據(但我不這麼認爲),請將它們定義爲coredata中的可選項。

希望這有助於,

+6

選中此接受答案?幫助我在我的情況太:) – mmvie

+0

,孩子方面有適當的數據,而父上下文,當它試圖保存沒有數據.. !!一切都是零! 我如何確保數據得到反映給家長? 鏈接到我的問題是:http://stackoverflow.com/questions/19666178/multi-context-coredata-with-threads/19683462?noredirect=1#19683462 – vshall

+0

我碰到了同樣的問題試圖挽救'NO'在一個我們用作布爾值的'NSNumber'。我蹂躪我的大腦了一個小時實現我需要使用'@ NO' –

0

我有這個問題,當我複製從其他xcdatamodeld文件實體。 他們失去了反向屬性,所以這就是原因。邁克爾A說:

5

。檢查你的屬性值不是零。 有兩種方法可以擺脫這些錯誤。 案例1:如果需要2個屬性

如果2個屬性是必需的屬性,那麼檢查你傳遞的值不是零是必須的,有時可能會發生,如果你想擺脫這些錯誤必須爲您的實體的屬性檢查器中的這些屬性在數據模型中給出默認值

案例2: 通過選擇可選的複選標記,將這些屬性設置爲屬性檢查器中的可選屬性。

我也很掙扎幾天才知道這些錯誤。 希望它可以幫助別人。

0

不是真的與日期有關,但與錯誤,我分享,因爲這問題有更多的觀點:

在我的情況,我設置一個BOOL財產直接作爲YESNO,但你應該使用

的NSNumber numberWithBOOL

,以使其發揮作用。

+0

NSNumber * pointer = @YES;會做的伎倆。 –