iphone - 如何从 ManagedObjectContext 中删除未保存的对象

标签 iphone core-data

我在 iPhone 上的核心数据项目遇到问题。当用户开始添加对象,然后在此过程中取消时,就会发生这种情况。

如果用户点击取消并返回到对象列表,则会在那里列出一个虚拟对象,代表他们正在创建的对象。这永远不会保存到数据库 - 当用户点击保存按钮时,保存会按预期发生。

加载用户添加数据的 View Controller 时,我创建一个新的 Thing 对象 - 这是我要添加的核心数据实体:

myThing = [NSEntityDescription insertNewObjectForEntityForName:@"myThing" inManagedObjectContext:managedObjectContext];

我尝试在我的取消方法中删除它,如下所示:

[managedObjectContext deleteObject:myThing];

当我这样做时,当我点击“取消”时,我会收到 EXC_BAD_ACCESS。单步执行调试器中的代码,它可以很好地完成取消方法,但这是在 Root View Controller 中生成的,我在其中列出了我的对象以及在尝试创建此对象之前我所在的位置。

我想要实现的目标是允许用户添加新对象,但中途取消。

有什么想法导致此错误吗?不幸的是,我无法从中生成堆栈跟踪:(

最佳答案

您取消对象的方法是典型且适当的。

内存错误很常见,而且很难调试。你运行过静态分析器吗?从上下文中删除“myThing”引用后,您可能需要将其设置为 nil。

您确定是取消工作流程导致了内存错误吗?

关于iphone - 如何从 ManagedObjectContext 中删除未保存的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262625/

相关文章:

javascript - Chrome 和 Firefox 无法访问 iPhone 相机

iphone - (iPhone) 如何使用 OS 4.0 MapKit 实现可拖动图钉?

swift - 在类型 '' 上使用实例成员 '' ';您的意思是使用 '' 类型的值吗?

iphone - iOS didSelectTabBarItem 知道之前选择了什么项目

iphone - 引用 UIbutton 的 alpha 的 if/else 语句不起作用

Swift 核心数据一次非常慢

objective-c - NSFetchedResultsController objectAtIndex、objectAtIndexPath、indexPathForObject 不一致

ios - CoreData 如何将数据发送到另一个 View Controller

ios - 如何在脱机同步中处理核心数据关系-Azure移动服务iOS

iphone - 由于 CALayer 边界包含 NaN : [0 0; nan 20] 导致崩溃