作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序为“文本文章”提供了某种编辑器功能。我的编辑器有两种模式。当编辑器加载时,如果尚未通过初始化程序传入托管对象,我将创建一个托管对象。当用户取消新编辑时,我从上下文中删除该对象。但是,有时,我会收到有关对象未插入上下文的错误,有时则不会。那么,以下代码是检查托管对象实例是否已插入上下文的好方法吗?
if ([[self.workingManagedObjectInstance managedObjectContext] isEqual:self.managedObjectContext]){
}
我的理论是,如果[self.workingManagedObjectInstance ManagedObjectContext]
为nil
,那么它还没有被插入,并且不会是“isEqual
” >”。这是检查我们没有删除尚未插入的对象的有效方法吗?
最佳答案
如果可能,应始终使用相同的托管对象上下文,而不是它的各种实例。如果您有多个 View Controller ,则应该传递相同的上下文作为引用。比较上下文并不能告诉您有关实体实例是否存在的任何信息。
以通常的方式初始化对象后
myEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Entity"
inManagedObjectContext:self.managedObjectContext];
您可以检查它是否存在并通过简单的删除它
if (myEntity) {
[self.managedObjectContext deleteObject:myEntity];
}
关于iphone - 如何安全删除未保存的托管对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7411628/
我是一名优秀的程序员,十分优秀!