核心数据:设计问题

时间:2011-06-06 12:59:04

标签: iphone objective-c xcode ipad core-data

我是Core Data的新手,我试验了一个设计问题。 假设我有两个实体:“产品”和“图像”。

Image实体有一个名为“type”的属性(normal,mini等...)。

我希望Product实体具有Image类型的属性,如:miniImageList,normalImageList等...但我真的不知道是否有可能使用XCode4图形编辑器,无法创建属性其类型是先前声明的实体。

我找到的唯一丑陋的解决方案是在Product和Image之间创建一个to-many关系。因此,我有一个NSSet生成,其中包含我想要的所有图像。这个解决方案的问题是我需要测试我想要的图像的类型(迷你,正常)等...这不是很方便。

如果你们中的任何人都知道如何解决这个问题,那么你们真的很受欢迎;)

希望我一直很清楚,谢谢你的阅读。

2 个答案:

答案 0 :(得分:2)

  

我希望Product实体具有Image类型的属性,如:miniImageList,normalImageList等...但我真的不知道是否有可能使用XCode4图形编辑器,无法创建属性其类型是先前声明的实体。

为此,您需要创建关系。 “Image类型的属性”本质上是Product和Image之间的关系。

在您的情况下,更合适的解决方案是在Product和Image之间定义fetched properties。因此,可以使用您需要在图像集上应用的“过滤”将miniImageList和normalImageList定义为获取的属性。但是,获取属性的一个重要限制是它们不是动态的。您需要确保生成的Image NSArray的内容考虑到最新的Image实体添加/删除/修改。

答案 1 :(得分:0)

将不同的图像大小分隔为实体,或者展开Image实体以容纳不同大小的图形。

在这种情况下,我认为第二种方法是最好的。产品可以很容易地参考图像的内在性及其属性。