使用额外信息进行编辑:
我正在使用基于cs193p的CoreDataTableViewController
的应用。
当我删除名为Position
的实体的实例时,会立即调用prepareForDeletion
。但是当我调用saveToURL
或者数据库被自动保存时,会再次调用prepareForDeletion
。
这是应该的样子吗?我能预防吗?
答案 0 :(得分:0)
设置BOOL isDeleting
并检查进程是否已在运行。
- (void) prepareForDeletion
{
if ( isDeleting )
return;
/* handle the rest of the deleting process */
isDeleting = YES;
if ( /* the process has finished deleting */ )
isDeleting = NO;
}
答案 1 :(得分:0)
它可能是应该的样子。 UIManagedDocument使用两个ManagedObjectContexts。子上下文(document.managedObjectContext)保存时,它会对其父上下文执行此操作。当父节点保存到持久存储时,父上下文中的对象将立即调用它们的prepareForDeletion
。