0

我有一个与此类似的核心数据模型:

在此处输入图像描述

保存 Webgallery或Article对象时,它可能会使用一张或多张图片。他们可以使用相同的摄影主题,但可能尺寸不同。我不保存未在WebGallery文章中使用的图片。

Picture的关系实例social被设置为级联,所以当Picture对象被删除时,相应的PictureInstanceSocial对象也被删除。

1) 有没有办法知道图片何时不再被使用,无论是通过WebGallery还是通过文章都可以删除?

2)关系previewPictureteaserPicture没有逆关系是否有问题?

4

1 回答 1

1

你应该有一个逆关系。反过来,问题就变得微不足道了。当一个简单的级联规则将它们从 WebGallery 和文章中删除时。(或者也许你只是想取消)。

您通常应该对两个方向的关系进行建模,并适当地指定反向关系。Core Data 使用此信息来确保对象图的一致性,如果发生更改(请参阅“操作关系和对象图完整性”)。有关您可能不想在两个方向上建模关系的一些原因以及如果不这样做可能出现的一些问题的讨论,请参阅“单向关系”。</p>

(核心数据编程指南)

每当您从图库或文章中删除图片时,您都可以简单地检查是否使用了图片:

[gallery removePictureObject:pictureToRemove];
if (pictureToRemove.galleries.count == 0 && pictureToRemove.articles.count == 0) {
    [managedObjectContext deleteObject:pictureToRemove];
}
于 2012-09-04T20:32:54.050 回答