我有一个视图,该视图由一个现有对象表和一个添加按钮组成,该按钮允许
用户创建一个新对象。当用户按下添加时,将在列表视图控制器中创建对象,以便该对象将成为该托管对象上下文的一部分。
(通过NSEntityDescription insertNewObjectForEntityForName:
方法)。
“添加”视图具有托管对象的属性。在列表视图控制器中,
我创建一个添加视图控制器,将属性设置为我创建的托管对象,然后
然后将“添加”视图推送到导航堆栈。
在“添加”视图中,我有两个按钮用于保存和取消。在保存中,我保存了托管对象
并通过委托方法将托管对象传递回列表视图控制器。如果
用户取消,然后删除该对象,然后将nil传递回列表视图控制器。
我在添加视图中遇到的复杂性与UIImagePickerController
有关。
在“添加”视图中,我有一个按钮,允许用户为对象拍照
(或使用照片库中的现有照片)。但是,转移到
UIImagePickerController
并让用户使用相机,则会导致didReceiveMemoryWarning
在添加视图控制器中。
此外,该视图已卸载,这也导致我的NSManagedObject
被破坏。我的问题
是,在释放NSManagedObject
的情况下,如何重新加载它,因为
内存不足的情况?
最佳答案
只是一个建议,但是等到用户说完成编辑后再创建托管对象又如何呢?
将“编辑器”的所有属性存储在单独保存的词典中(以防在编辑过程中出现呼叫,或者他们想从另一个应用程序复制文本以粘贴到您的新项目中),每次编辑时都保存一个领域。然后,当用户完成编辑后,一次性创建并保存来自词典内容的被管理对象。如果取消,则重置(或删除)字典(并清理其持久文件)。这样,您可以在内存不足的情况下更好地进行控制。
关于iphone - NSManagedObject如何重新加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2961742/