iOS Core Data 保存上下文错误
Posted
技术标签:
【中文标题】iOS Core Data 保存上下文错误【英文标题】:iOS Core Data save context error 【发布时间】:2014-11-22 18:27:33 【问题描述】:我正在尝试使用 Core Data 将数据插入数据库:
+ (BOOL)insertQuestionnaireObject:(Questionnaire *)questionnaireObject withError:(NSError **)error
__block BOOL result = NO;
[self.managedObjectContext performBlockAndWait:^
Questionnaire *questionnaireManagedObject = [self entityToInsertWithName:@"Questionnaire"];
if (questionnaireManagedObject)
[self prepareForInsertQuestionnaireManagedObject:questionnaireManagedObject withQuestionnaireObject:questionnaireObject];
result = [self saveContextWithError:error];
];
return result;
我正在保存上下文:
+ (BOOL)saveContextWithError:(NSError **)error
BOOL result = YES;
if (![self.managedObjectContext save:error])
result = NO;
return result;
Insert 方法乍一看工作正常。关于保存上下文方法,我不能说同样的话。它在if (![self.managedObjectContext save:error])
行中循环(为什么它应该?)并退出而没有转到return result;
行,因为我们的崩溃或返回错误。但它将 2x 个对象保存到数据库而不是 1 个。这些事情从 ios 8 和方法 performBlockAndWait
usage 开始发生。我该如何解决?
【问题讨论】:
【参考方案1】:可能是因为您试图通过在类方法中调用self.managedObjectContext
来访问实例变量。尝试将类方法变成实例方法,或者将self.managedObjectContext
作为参数传递给类方法。
【讨论】:
以上是关于iOS Core Data 保存上下文错误的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 Core Data - 如何同步保存上下文?