我目前有两个实体,一个类别实体和一个项目实体,其中 Category:Item 是 1:m。
我已将“无操作”规则应用于 Category -> Item 关系,并实施 Category.prepareForDeletion 以在删除类别之前将类别中的所有项目移动到一个特殊的 catch-all 类别(catch-all 类别不可删除)。
- (void)prepareForDeletion {
Category *misc = [Database theMiscCategory];
[misc addItems:self.items];
[super prepareForDeletion];
}
我的问题是:我错过了什么吗?如果没有,我该如何关闭关于“无操作”作为高级功能的 XCode 警告?
FTR,我没有使用 nullify,因为它更方便应用程序的其他区域转储“杂项”类别中的内容,而不是处理具有 null 类别的项目。我最初确实尝试过,但是遇到了一些意外的行为-如果我首先调用 super ,则在我可以收集要更改的项目集之前,关系就被取消了,如果我把它放在之后,那么与新类别的关系就得到了作废。我想我可以收集它们,然后调用 super,然后设置新类别,但这似乎很笨拙。
所以我确实认为“无操作”是我想要的,只是想确保我没有遗漏我应该在 prepareForDeletion 中管理的任何其他内容。