我想知道为什么我的Core Data停止保存更改。事实上,上面的代码工作了几个小时。当我尝试打印出错误时,会打印(null)
。以下代码是NSManagedObjectSubclass
的自定义方法:
-(void)bindWithModel:(MenuAPIModel*)model{
self.basketId = [model.basketId integerValue];
self.coreId = [model.itemId integerValue];
self.name = [model name];
self.orderId = [model.orderId integerValue];
self.payedFrom = [model payedFrom];
self.persons = [model persons];
self.price = [model.price integerValue];
self.price3 = [model.price3 integerValue];
self.price12 = [model.price12 integerValue];
self.status = [model status];
[[NSManagedObjectContext MR_defaultContext] MR_saveOnlySelfWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) {
NSLog(@"error %@", error.localizedDescription);
}];
错误为空,contextDidSave
为YES。但是当我尝试访问实体时,它打印为null,而SQL表是空的。为什么?
答案 0 :(得分:1)
我假设bindWithModel
方法在NSManagedObject
子类中。如果是这样,那么您应该使用此类中的managedObjectContext
属性而不是MR_defaultContext
:
[self.managedObjectContext MR_saveOnlySelfWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) { (...) }];
之前它的运作可能是因为[NSManagedObjectContext MR_defaultContext]
的上下文与self.managedObjectContext
相同。