核心数据保存错误(NSValidationErrorKey,Cocoa错误1570)保存NSDate

Pet*_*ter 51 xcode core-data nsdate

我在Xcode中保存到Core数据对象时遇到错误.

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.)
Run Code Online (Sandbox Code Playgroud)

一个小代码snipet:

        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]) {
...
Run Code Online (Sandbox Code Playgroud)

也是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
Run Code Online (Sandbox Code Playgroud)

所以你可以看到我把NSDate放入'datum'变量中.但在执行时我仍然会收到错误.

Mic*_* A. 153

可可错误1570意味着没有填写必填字段.在这种情况下,您有两个属性nil:Voedseldatum.

我在你的代码中看到:

newDaglijst.Voedsel = geselecteerdVoedsel;
newDaglijst.datum = selDatum;
Run Code Online (Sandbox Code Playgroud)

检查geselecteerdVoedsel并且selDatum不是零或者它们是否过度释放并且完成为零.如果它们是可选数据(但我不这么认为),请在coredata中将它们定义为可选数据.

希望这有帮助,

  • 检查这是接受的答案?帮助我了:) (9认同)