objective-c - 核心数据删除规则

标签 objective-c core-data

我的数据库有 3 个实体:照片、地点(拍摄照片的地方)和标签(照片)。

database

每张照片都与拍摄地点有关。 每个地方都有一组照片。

每张照片都有一组标签,每个标签都有一组照片。这是多对多的关系,因为一张照片可以有多个标签,一个标签可以关联多张照片。

现在,我想不出针对这种行为的正确删除规则:

  • 我只想直接删除照片实体。
  • 如果相关地点有其他拍摄的照片,则不应删除。如果照片是该地点的最后一张照片,则应将其删除。
  • 如果相关标 checkout 现在其他照片中,则在没有其他照片关联之前不应删除它们。
  • 此外,在标签实体中,我有一个属性可以跟踪与其关联的照片数量(我会在添加新照片时以及在照片的 prepareForDeletion 中更新此属性)。

有什么建议吗?

最佳答案

首先,标签不需要单独的属性来跟踪照片的数量。您可以查询该计数的关系。

其次,您可能希望在 Photo 实体中设置一个 -prepareForDeletion 来检查它是否是唯一引用该标签的照片,然后如果为真,则将其删除。

同样,当您删除照片时,在其 -prepareForDeletion 中,您可以检查该位置有多少张照片并调用相同的逻辑。

然后在模型本身中,我会将删除规则设置为无效。

关于objective-c - 核心数据删除规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713289/

相关文章:

javascript - 如何在 ios 6 中将逗号 (,) 分隔符作为小数点分隔符?

ios - iphone 如何推送浏览量?

iphone - 数据未更新的 NSFetchedResultsController

iphone - 我如何优化这个基于核心数据的搜索?

iphone - 核心数据: Errors vs Exceptions Part 2

ios - NSFetchedResultsController:获取节对象

iphone - (anObject *)在语句前做什么?

ios - 自定义 MapKit MKAnnotation Callout 气泡以在 objective-c 中显示多行文本

ios - 如何使 UITextField 文本输入在 5-6 个空格字符后开始

objective-c - 名为 'description' 的属性导致崩溃