2
我正在與核心數據的第一次,這讓我難倒。核心數據和撤消組
我有以下的方法來處理分組我的變化,並將其保存:
- (void)beginUndoGrouping:(NSManagedObjectContext *)managedObjectContext {
NSLog(@"begin");
[managedObjectContext processPendingChanges];
[managedObjectContext.undoManager beginUndoGrouping];
}
- (void)endUndoGroupingAndSaveContext:(NSManagedObjectContext *)managedObjectContext
{
NSLog(@"end/save");
[managedObjectContext processPendingChanges];
[managedObjectContext.undoManager endUndoGrouping];
[self saveContext:managedObjectContext];
}
- (void)cancelUndoGrouping:(NSManagedObjectContext *)managedObjectContext {
NSLog(@"cancel");
[managedObjectContext processPendingChanges];
[managedObjectContext.undoManager endUndoGrouping];
[managedObjectContext.undoManager undoNestedGroup];
}
通過我知道這一點的NSLog語句計算機輔助是事件的順序:在根視圖
- 啓動應用程序
- 進入列表視圖
開始 - 離開列表視圖
末/保存 - 進入項目詳細信息視圖
- 進入類別詳細視圖
開始 - 觸摸添加類別按鈕,這把我們帶到另一種觀點認爲
開始 - 輸入新數據
- 觸摸完成按鈕
結束/保存 - 觸摸返回返回到項目詳細信息視圖
- 觸摸取消按鈕
取消 - 回到列表視圖
開始
在這點我的新類別已經消失,我不明白爲什麼。它被包裹在一個小組中,結束並保存。難道它不能免於在這一點上回滾?我希望取消隻影響項目詳細視圖中所做的任何更改。如果它現在的行爲方式是正確的,那麼我該如何讓它按照我期望的方式行事?
任何澄清將不勝感激!
由於沒有提供其他答案,因此您可以接受此答案。你不會獲得任何代表,但它會對社區有所幫助。 –
你可以發佈你的代碼作爲最終答案嗎?我不確定你的意思是關於第二個管理對象上下文。 –