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