我的问题是如何通过良好的设计正确实现这一点。
我会为此使用核心数据。
问题描述: 假设我们在系统中有两个对象类型(类),Location 和 Event。它们是从 web 服务中检索的,不需要持久化。
这两种对象中的任何一种都可以添加(保存)到收藏夹,并且应该在本地保存。
其他要求:
- 显示和管理收藏夹 - 在 FavoritesViewController 中说(我会在这里使用NSFetchedResultController)
- 收藏夹的显示(单元格)不同,根据收藏夹类型(位置或事件)
- 在 Location/Event details 视图控制器中,将有一个添加/删除收藏夹的操作,该操作的状态应根据收藏夹的存在设置
- 将来,它可以是另一种可以添加到收藏夹的对象类型(例如,饮料)。
我对实现这一点的最佳方法感到两难。我是否应该将位置和事件直接存储为单独的实体(模型对象),并以某种方式在一次提取中检索它,以便获取和管理收藏夹列表。或者,可能使用一个接口/协议(例如 Favorable),并创建和存储收藏夹对象,每个可以添加到收藏夹的对象都应该实现收藏夹,并将转换为收藏夹对象,但是在这种情况下,它会限制收藏夹仅适用于 Favorite 对象公开的属性。