我在项目中使用UIManagedDocument并且必须更改现有对象的关系。
数据库中已存在所有对象,因此我不处理临时ID /永久ID问题。我也在我的UIManagedDocument上使用updateChangeCount:
来保存更改。所以它不应该是UIManagedDocument通常的嫌疑人的问题。
型号:
Company
|-- Department
|-- Employee
操作:
致电Department
,将Company
从[aDepartment setCompany:newCompany]
移至另一个Department
。
情况1(成功):
在实体company = newCompany
上执行fetchRequest,调用Employee
会返回预期结果。
情况2(失败):
在实体department.company = newCompany
上执行fetchRequest,调用{{1}}不会返回任何结果。
情境2仅在UIManagedDocument自动保存后成功。
任何想法如何解决这个问题?
答案 0 :(得分:0)
在处理这个问题很长一段时间后 - 不幸的是,即使是Apple工程师也无法提供帮助 - 我能够找到解决方案。
更改关系后调用[myManagedDocument saveToURL:fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:nil];
可以解决问题并立即返回正确的状态。
无论如何,我正在为此填写错误报告,以便通过updateChangeCount:
完成此操作。
答案 1 :(得分:0)
同样的问题。我终于通过保存managedObjectContext和它的父上下文来找到解决方案。
NSError *error;
if ( ![self.fetchedResultsController.managedObjectContext save:&error] ||![self.fetchedResultsController.managedObjectContext.parentContext save:&error]) {
// .....
}