0

我有一个服务器 API,它在 3 个不同的端点下返回相同的 Item 对象:

  • /新的/
  • /受到推崇的/
  • /图书馆/

相同的项目可能出现在新列表和推荐列表中。

我需要以某种方式跟踪哪些项目来自哪些端点,将它们显示为 3 个不同的屏幕,同时在数据库中维护一大堆项目。什么是一个好的模型?

4

1 回答 1

0

您可以进行一些超规范化,但如果您认为这是仅有的三个分类,您可以将它们添加为实体的布尔字段,并根据每个字段来自哪个端点将其标记为已检查。以下是一些步骤:

  1. 从每个端点下载项目
  2. 通过实体的服务器 ID 在 Core Data 中查找每个项目。如果实体在 Core Data 中尚不存在,则创建它
  3. 使用您从服务器记录中获得的内容设置实体字段
  4. 如果它来自“新”端点,请将“新”布尔字段设置为“是”。如果来自“推荐”,则将“推荐”布尔字段设置为 YES,等等。
  5. 保存实体
  6. 当您在每个视图中执行 fetch 时,只需将谓词设置为以下内容之一:

    [NSPredicate predicateWithFormat:@"new = 1"];

    [NSPredicate predicateWithFormat:@"recommended = 1"];

于 2012-10-03T05:06:06.883 回答