iphone - NSManagedObject 如何重新加载

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

我有一个由现有对象表和添加按钮组成的 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/

相关文章:

iphone - 如何以编程方式暂停 NSTimer?

iphone - 加载一个随机的 UIViewController?

iphone - NSOperationQueue 在操作之间暂停?

ios - 使用 Cocoa 在 Swift 中的性能

objective-c - NSTextView 黄色突出显示像在 safari 搜索中

ios - UIButton:将图像放置在标题旁边

iphone - 以编程方式将 uilabel 添加到 xib 的 View Controller 会导致 'No Visible @Interface' 错误

Iphone sdk,如何将数据发布到网络服务器?有人有例子吗?

objective-c - 使用 initWithRect :[self bounds] and [self frame] 初始化时,NSTrackingArea 会产生不同的结果

ios - 位置服务警告,即使它们已启用