Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios5 UIManagedDocument不会立即更新关系的更改_Ios5_Uimanageddocument - Fatal编程技术网

Ios5 UIManagedDocument不会立即更新关系的更改

Ios5 UIManagedDocument不会立即更新关系的更改,ios5,uimanageddocument,Ios5,Uimanageddocument,我在项目中使用UIManagedDocument,必须更改现有对象的关系 数据库中已经存在所有对象,因此我不处理临时ID/permanentID问题。我还在UIManagedDocument上几乎使用updateChangeCount:来保存更改。因此,UIManagedDocument中通常的嫌疑犯不应该有问题 型号: Company |-- Department |-- Employee 操作: Company |-- Department

我在项目中使用UIManagedDocument,必须更改现有对象的关系

数据库中已经存在所有对象,因此我不处理临时ID/permanentID问题。我还在UIManagedDocument上几乎使用
updateChangeCount:
来保存更改。因此,UIManagedDocument中通常的嫌疑犯不应该有问题

型号:

Company
   |-- Department
          |-- Employee
操作:

Company
   |-- Department
          |-- Employee
通过调用
[a部门设置公司:新公司]
部门从一家
公司移动到另一家
公司

情景1(成功):

对实体
Department
调用
company=newCompany
执行fetchRequest,返回预期结果

情况2(失败):

Company
   |-- Department
          |-- Employee
对实体
Employee
调用
department.company=newCompany
执行fetchRequest不会返回任何结果

只有在UIManagedDocument自动保存后,情况2才会成功


有什么办法解决这个问题吗?

在处理这个问题很长一段时间后——不幸的是,连苹果的工程师都没能帮上忙——我终于找到了解决办法

调用
[myManagedDocument saveToURL:fileURL for SaveOperation:UIDocumentSaveForOverwrite completionHandler:nil]更改关系后解决问题并立即返回正确状态


无论如何,我正在填写一份bug报告,以便通过
updateChangeCount:

同样的问题来完成这项工作。通过保存managedObjectContext及其父上下文,我最终找到了一个解决方案

NSError *error;
if ( ![self.fetchedResultsController.managedObjectContext save:&error] ||![self.fetchedResultsController.managedObjectContext.parentContext save:&error]) {
    //  .....
}