我有一个视图,它包含一个现有对象表和一个允许的添加按钮
用户创建新对象。当用户按下Add时,将在列表视图控制器中创建对象,以便该对象将成为该托管对象上下文的一部分
(通过NSEntityDescription insertNewObjectForEntityForName:
方法)。
“添加”视图具有托管对象的属性。在列表视图控制器中, 我创建一个添加视图控制器,将属性设置为我创建的托管对象,和 然后将添加视图推送到导航堆栈。
在添加视图中,我有两个用于保存和取消的按钮。在保存中,我保存了托管对象 并通过委托方法将托管对象传递回列表视图控制器。如果 用户取消,然后我删除该对象并将nil传递回列表视图控制器。
我在添加视图中遇到的复杂问题与UIImagePickerController
有关。
在添加视图中,我有一个按钮,允许用户拍摄对象的照片
(或使用照片库中的现有照片)。但是,转移到的过程
UIImagePickerController
并让用户使用相机,导致didReceiveMemoryWarning
在添加视图控制器中。
此外,视图已卸载,这也导致我的NSManagedObject
遭到破坏。我的问题
是,如何在发布它的情况下重新加载NSManagedObject
因为
内存不足的情况?
答案 0 :(得分:1)
只是一个建议,但是在用户说他们完成编辑之前等待创建托管对象怎么样?
将“编辑器”的所有属性存储在您单独存放的字典中(如果在编辑期间有来电,或者他们想要从另一个应用复制文本以粘贴到您的新项目中),请保存每个属性他们编辑一个字段的时间。然后,当用户完成编辑时,一次性从字典内容创建和保存管理对象。如果他们取消,重置(或删除)字典(并清理其持久文件)。通过这种方式,您可以在内存不足的情况下获得更好的控制权。