我正在嘗試設置一個撤消組,該組包含泛手勢識別器期間發生的所有更改。被修改的對象是來自核心數據的NSManagedObjects。使用核心數據撤消運行循環中的循環
當手勢進入「開始」階段時,代碼啓動一個撤銷組並關閉按事件分組。在「結束」和「取消」階段,組結束並按事件分組。
在識別器的每個「更改」上,都會更新同一個核心數據對象。隨後,Core Data將爲該特定更改創建一個新的撤消組。
有沒有什麼辦法可以讓核心數據停止?或者我需要改變在這種情況下如何處理撤銷?
我有一個示例項目here在BBQMainViewController.m的handlePanGesture:方法(第82行)中有相關的代碼。該項目在識別器的每次更新時向控制檯輸出撤消堆棧。正如你所看到的,撤消堆棧的構建和構建。如果您註釋掉第168行,撤消堆棧不會建立。
我相信Core Data會根據我的測試合併同一個運行循環中的所有更改。這個樣本已經從實際的項目中解決了很多問題。每次更改都會有更多更新,並更新UI,然後還需要Core Data更改。 – 2012-01-18 19:14:36