2010-06-02 84 views
1

我有一個視圖,包含一個現有的對象和一個添加按鈕表,它允許用戶創建一個新的對象 。當用戶按下添加時,該對象在列表視圖控制器中創建,以便該對象將成爲該託管對象上下文 (通過NSEntityDescription insertNewObjectForEntityForName:方法)的一部分。NSManagedObject如何重新加載

添加視圖具有託管對象的屬性。在列表視圖控制器中, 我創建了一個添加視圖控制器,將該屬性設置爲我創建的託管對象,然後將添加視圖推入導航堆棧。

在添加視圖中,我有兩個用於保存和取消的按鈕。在保存中,我保存託管對象 並通過委託方法將託管對象傳遞迴列表視圖控制器。如果 用戶取消,那麼我刪除該對象並將nil返回給列表視圖控制器。

我在添加視圖中遇到的併發症與UIImagePickerController有關。 在添加視圖中,我有一個按鈕,允許用戶拍攝對象 (或使用照片庫中的現有照片)。但是,轉移到用戶使用攝像頭的過程導致在添加視圖控制器中產生一個didReceiveMemoryWarning

此外,視圖被卸載,這也導致我的NSManagedObject得到破壞。我的問題 是,你如何去重新加載NSManagedObject在它被釋放的情況下,因爲 的內存不足的情況?

回答

0

只是一個建議,但等待創建管理對象,直到用戶說他們已完成編輯之後如何?

將「編輯器」的所有屬性存儲在單獨保存的字典中(如果在編輯過程中有電話進來,或者他們想從另一個應用程序複製文本以粘貼到您的新項目中),保存每次他們編輯一個字段。然後,當用戶完成編輯時,一次創建並保存字典內容中的管理對象。如果他們取消,重置(或刪除)字典(並清理其永久文件)。這樣你就可以在低內存的情況下更好地控制。