2012-09-04 56 views
0

我有一个类似的核心数据模型:核心数据的反比关系,并删除无用的对象

enter image description here

Webgallery文章对象被保存,它可以使用一个或多个图片。他们可以使用相同的拍摄对象,但可能尺寸不同。我不保存在WebGallery条款中未使用的图片。

图片的关系实例社会被设置为级联,所以当图片对象被删除,相应的PictureInstance社会对象被删除了。

1)有没有办法知道,当一个图片没有得到再使用,既不WebGallery也不由因此它可以删除吗?

2)它是一个问题,即关系previewPictureteaserPicture没有逆?

+0

出于好奇,有什么理由你不具备逆? – mkral

+0

由于可能有10个其他实体与WebGallery或Article类似,但大多数情况下只有一个反例不会被忽略。 – Norbert

回答

1

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

您通常应该在两个方向上建模关系,并适当指定相反的关系。核心数据使用此信息确保对象图的一致性(请参阅“处理关系和对象图完整性”)。有关您可能不想在两个方向建模关系以及可能会出现的一些问题的一些原因的讨论,请参阅“单向关系”。

(核心数据编程指南)

你可以简单地检查是否有图片用于每当你从画廊或文章删除:

[gallery removePictureObject:pictureToRemove]; 
if (pictureToRemove.galleries.count == 0 && pictureToRemove.articles.count == 0) { 
    [managedObjectContext deleteObject:pictureToRemove]; 
} 
+0

那么你将如何设置删除规则?我可以将未使用的照片自动删除吗? – Norbert

+0

无论何时从Web图库或文章中删除图片,您都可以进行检查。看我的编辑。 – Mundi