我正在開發一種繪圖應用程序,其中用戶在畫布上設置點。正在繪製的內容被存儲爲NSManagedObjects。我還啓用了撤消管理器,以便用戶可以通過按一個按鈕撤消最後一次繪圖手勢。核心數據撤消後臺線程刪除
這一切都按預期工作。
然後我有一個按鈕來刪除畫布上的所有內容(清除畫布)。按下後,我會在後臺線程上進行刪除操作,因此可能需要一段時間,我想提供一個進度條。然後我將後臺線程的模型對象上下文與主線程的上下文合併。這工作也很好。
但我希望能夠讓用戶撤消完全刪除操作,只需點擊一下撤銷按鈕。這是我無法做到的。
對於多線程的一部分,我下面這個教程:http://www.cimgf.com/2011/05/04/core-data-and-threads-without-the-headache/
看來我不能得到這個撤銷超出了兩個線程的合併(一次得手,不過,我不知道爲什麼)。不知道我是否應該把整個事情放在撤消組中。我已經嘗試過,但仍然沒有運氣。
我相信你應該能夠撤消組的包裹,並做-undoNestedGroup做到這一點。我沒有測試過,但是我想知道它是否可以運行,如果你測試它。 – svena 2012-07-09 07:20:17
是的,這是我正在嘗試的,但它不起作用,它不會撤消到合併前的狀態。 – Odrakir 2012-07-09 10:04:07
合併本身在撤消組內還是僅僅是後臺操作? – svena 2012-07-09 10:08:51