1

我有一个应用程序可以与服务器对话以获取Item当前用户的一些项目(类)并存储它。到现在为止还挺好。

我想实现搜索,它本质上返回了一组 Item 对象,但显然我不想保留每个搜索结果。另一个用例是服务器 API 有不同的端点,如推荐/新/即将到来/返回相同的项目对象,但在不同的上下文中,所以我想以某种方式区分它们。

我的第一个想法是使用一次性托管上下文,从那里的 API 加载对象,进行获取,当用户完成后,只需销毁上下文。一般来说这是个好主意吗?它节省了代码,因为我的大多数 VC 已经与核心数据进行了交流。

4

1 回答 1

1

与其把 Core Data 的整个美妙的基础设施扔掉,不如利用它来实现你的目的。

  • 向您的实体添加时间戳属性,并使用它有选择地显示搜索结果,甚至从旧项目中清除您的商店。

  • 向您的实体添加类别属性并在搜索时按类别过滤。

两者都可以通过NSPredicate添加到NSFetchRequest. 例如:

fetchRequest.predicate = [NSPredicate predicateWithFormat:
   @"timestamp > %@", [[NSDate date] dateByAddingTimeInterval:numberOfSeconds]];

或者

fetchRequest.predicate = [NSPredicate predicateWithFormat:
  @"category = %@", @"new"]; 
于 2012-09-28T18:46:14.653 回答