2012-09-03 57 views
0

在我的應用程序中,我遵循CoreDataBooks來實現Core數據。我有一個項目列表,當用戶選擇任何項目時,細節屏幕出現編輯選項。詳細信息畫面中有ManagedObjectContext的實例,它是列表中的ManagedObjectContext實例的子項。 現在,當我在細節屏幕上編輯某些內容時,我正在更新從兒童MOC實例獲取的實體中的值。在我打電話給回滾兒童MOC時取消,它什麼都不做。不知道爲什麼回滾不會將值恢復到上次保存的值。iOS Coredata回滾不起作用

- (void)cancelAction:(id)sender 
{ 
    _isEditing = NO; 
    [_managedObjectContext rollback]; 
    [self configureNavBar]; 
    [table reloadData]; 
} 
+0

它實際上工作。我在代碼中犯了一些其他錯誤,即在回滾後再次設置編輯值。 –

回答

1

您可以檢查您的UndoManager是否設置在您的MOC中,即您是否使用UndoManager。

閱讀該響應,可以幫助在爲此:undo all changes made in the child view controller

但如果你是以下CoreDataBooks例如,你可以看到法

(void)addViewController:(AddViewController *)controller didFinishWithSave:(BOOL)save 

表明這些兒童視圖控制器將保存它的唯一MOC當設置標誌保存時,否則它會調用保存在父視圖控制器上的保存,從而回滾到存儲在父項的ManagedObject數據中的數據。