0

我即将将持久层添加到我的应用程序中,我决定试一试核心数据。目前我将所有模型映射到实体,这似乎工作得很好。但是在我当前的实现中,我使用了一些我称之为“集合”(模型)的东西,例如我在游戏中有一组瓷砖插槽。

这个 SlotsCollection 类具有 findNextInSameRow() findAvailableSlot() 等方法。我对核心数据所做的是我创建了一个 Game 实体并向 Slot 实体添加了多个关系,有没有办法定义一个集合的类插槽应该被实例化,所以我可以把我的逻辑放在里面?或者有没有更好的方法来组织事情。我想我可以在我的游戏实体中创建“经理”并在初始化时交出插槽

SlotManager* manager = [SlotManager alloc] initWithSlots:self.slots];
Slot* slot = [manager findAvailableSlot];

同样在我将所有模型“迁移”到实体之后,我有很多没有任何属性但只包含对其他实体的引用的实体。我有点害怕我在构建核心数据时使用了错误的心态。

4

1 回答 1

0

具有该集合的类应该具有该集合的逻辑。

如果您有从 A 到 B 的一对多关系,那么您会将有关此关系的逻辑放入 A 类中 - 并且可能将其中一些放在 B 类中(取决于您的需要)。

注意:如果您正在迭代关系,则需要注意错误行为等。每当 Core Data 必须执行实际的数据库工作时,都会对性能造成影响。这与普通的旧 SQL 没有什么不同。如果您不必“转至磁盘”,事情会非常快。如果您使用 fetch 请求,您将始终进行数据库工作,并且事情总是(相对)昂贵。

于 2012-05-06T10:09:58.810 回答