Ios CoreData&;RestKit-从多个源获取相同的实体类型

Ios CoreData&;RestKit-从多个源获取相同的实体类型,ios,cocoa,core-data,restkit,restkit-0.20,Ios,Cocoa,Core Data,Restkit,Restkit 0.20,我正在使用最新版本的RestKit访问一个API,并且正在下拉一些“事件”对象 我有两个不同的API端点: 1.“所有事件” 2.“此用户的事件” 来自端点#2的事件是来自端点#1的事件的子集 目前,我已经创建了两个不同的CoreData实体,每个端点一个。这是可行的,但效率很低——子集中的事件存在重复 我想做的是使用endpoint#1下拉所有事件,然后使用endpoint#2标记与此用户相关的事件(来自endpoint#1) 是否可以使用RKEntityMapping将任意值(标志)映射到接

我正在使用最新版本的RestKit访问一个API,并且正在下拉一些“事件”对象

我有两个不同的API端点:
1.“所有事件”
2.“此用户的事件”

来自端点#2的事件是来自端点#1的事件的子集

目前,我已经创建了两个不同的CoreData实体,每个端点一个。这是可行的,但效率很低——子集中的事件存在重复

我想做的是使用endpoint#1下拉所有事件,然后使用endpoint#2标记与此用户相关的事件(来自endpoint#1)

是否可以使用RKEntityMapping将任意值(标志)映射到接收到的对象中?因此,我可以在用户的事件到达时标记它们,但仍然将它们作为事件超集放入相同的CoreData实体中


或者其他建议?

事实上,你的建议是唯一可以做到这一点的方法。我不知道RestKit,但您可以简单地首先获取用户事件,插入核心数据,然后获取所有事件,只插入用户事件中不包含的事件。如果您有两个字典或托管对象数组,则一个简单谓词可以:

NSArray *userEventIDs = [userEvents valueForKeyPath:@"idNumber"];
NSSet *newEvents = [allEvents filteredSetUsingPredicate:
  [NSPredicate predicateWithFormat:@"not (idNumber in %@)", userEventIDs]];

那么,我应该如何在收到用户的事件时标记它们呢?如果没有这一点,按照你的建议,我不会仍然得到一整套事件,无法识别与用户相关的事件。你说你正在使用核心数据。当然,您的对象模型将包括从用户到事件的一对多关系。对吧?你当然完全正确!我猜我只是被RestKit的简单性和模仿远程数据结构蒙蔽了双眼,而我应该自己在本地DB(或CoreData)中创建关系。谢谢你的帮助。