Я разрабатываю приложение OS X, которое использует однопоточную модель Core Data без вложенных контекстов.NSManagedObjectContext save unsuccessful, но возвращает ошибку nil
Я создаю объекты в основном потоке в defaultContext и пытаюсь сохранить их после создания, но сбой невозможен без возврата ошибки. Я не перезаписывал какие-либо методы в моих объектах CoreData, но я использую последнюю версию MagicalRecord.
Код, который не удается:
// pseudocode for createOrFetchWithData:inContext:
// fetch object from value in objectDict
// if(!object) create project in context
// [object importValuesForKeysWithObject:objectData] // MR method
// return object
MyObject *object = [MyObject createOrFetchWithData:objectData
inContext:[NSManagedObjectContext defaultContext]];
if(!object) return; // just to emphasise that I am sure the object is not nil.
[[NSManagedObjectContext defaultContext] saveOnlySelfWithCompletion:^(BOOL saveSuccessful, NSError *error) {
if(saveSuccessful) {
NSLog(@"yay");
} else {
NSLog(@"nay");
}
}];
Возвращаемое значение [NSManagedObjectContext defaultContext]
не ноль, и я проверил, что код выполняется в главном потоке.
У меня есть отношение, которое не задано в MyObject *object
, но оно помечается как optional
в модели данных.
Любая идея, что может привести к провалу этой простой операции? У меня есть другие объекты, которые сохраняют только штраф, но этот конкретный случай терпит неудачу.
Примечание: Я бегу OS X Mavericks DP 8.