我有一个应用程序与服务器通信,以获取当前用户的一些项目(Item
类)并存储它。到现在为止还挺好。
我想实现搜索,它基本上会返回一组Item对象,但显然我不想坚持每一个搜索结果。另一个用例是服务器API有不同的端点,比如suggest / new / coming /返回相同的Item对象,但在不同的上下文中,所以我想以某种方式区分它们。
我的第一个想法是使用丢弃的托管上下文,从那里加载来自API的对象,进行获取以及用户完成后只需破坏上下文。一般来说这是个好主意吗?它节省了代码,因为我的大多数VC已经与核心数据进行了对话。
答案 0 :(得分:1)
您应该利用它来实现您的目标,而不是将整个Core Data的基础设施抛弃。
为您的实体添加时间戳属性,并使用该属性有选择地显示搜索结果,甚至从旧项目中清除您的商店。
向您的实体添加类别属性,并在搜索时按类别进行过滤。
可以使用添加到NSPredicate
的{{1}}来实现这两项目标。例如:
NSFetchRequest
或
fetchRequest.predicate = [NSPredicate predicateWithFormat:
@"timestamp > %@", [[NSDate date] dateByAddingTimeInterval:numberOfSeconds]];