NSManagedObject如何重新加载

时间:2010-06-02 21:29:47

标签: iphone cocoa cocoa-touch iphone-sdk-3.0

我有一个视图,它包含一个现有对象表和一个允许的添加按钮  用户创建新对象。当用户按下Add时,将在列表视图控制器中创建对象,以便该对象将成为该托管对象上下文的一部分  (通过NSEntityDescription insertNewObjectForEntityForName:方法)。

“添加”视图具有托管对象的属性。在列表视图控制器中,  我创建一个添加视图控制器,将属性设置为我创建的托管对象,和  然后将添加视图推送到导航堆栈。

在添加视图中,我有两个用于保存和取消的按钮。在保存中,我保存了托管对象  并通过委托方法将托管对象传递回列表视图控制器。如果  用户取消,然后我删除该对象并将nil传递回列表视图控制器。

我在添加视图中遇到的复杂问题与UIImagePickerController有关。  在添加视图中,我有一个按钮,允许用户拍摄对象的照片  (或使用照片库中的现有照片)。但是,转移到的过程  UIImagePickerController并让用户使用相机,导致didReceiveMemoryWarning  在添加视图控制器中。

此外,视图已卸载,这也导致我的NSManagedObject遭到破坏。我的问题  是,如何在发布它的情况下重新加载NSManagedObject因为  内存不足的情况?

1 个答案:

答案 0 :(得分:1)

只是一个建议,但是在用户说他们完成编辑之前等待创建托管对象怎么样?

将“编辑器”的所有属性存储在您单独存放的字典中(如果在编辑期间有来电,或者他们想要从另一个应用复制文本以粘贴到您的新项目中),请保存每个属性他们编辑一个字段的时间。然后,当用户完成编辑时,一次性从字典内容创建和保存管理对象。如果他们取消,重置(或删除)字典(并清理其持久文件)。通过这种方式,您可以在内存不足的情况下获得更好的控制权。