Database CoreData:添加时的两级fetchRequest

Database CoreData:添加时的两级fetchRequest,database,ios,core-data,fetch,Database,Ios,Core Data,Fetch,我有一个存储电影和演员的核心数据。 我通过json获得电影列表。每部电影都有一个演员(演员、角色) 所以我有电影,演员,演员实体。 当我收到电影列表时(每部电影都有一个唯一的电影ID): -获取我的数据库中当前的所有电影 -我创建了一个现有MoviesID的NSSet -我创建了一组newMoviesID -我做了一个减号集,以获得所有真正的新电影 -我循环遍历这些新项,将它们添加到CoreData中 这是相当快的,因为我只做一个获取请求。 现在,当我想将强制转换添加到数据库时,它变得非常慢 添

我有一个存储电影和演员的核心数据。 我通过json获得电影列表。每部电影都有一个演员(演员、角色)

所以我有电影,演员,演员实体。 当我收到电影列表时(每部电影都有一个唯一的电影ID): -获取我的数据库中当前的所有电影 -我创建了一个现有MoviesID的NSSet -我创建了一组newMoviesID -我做了一个减号集,以获得所有真正的新电影 -我循环遍历这些新项,将它们添加到CoreData中

这是相当快的,因为我只做一个获取请求。 现在,当我想将强制转换添加到数据库时,它变得非常慢 添加新电影时我现在所做的操作: -获取演员ID -为该参与者ID创建FetchReqyest -执行FetchRequest -如果找不到,我会添加一个新的参与者,否则会在CoreData中获取该参与者 -我创建了一个ActorRole,它创建了电影和演员之间的关系

我认为这是令人惊讶的缓慢,因为我做了一个为每部电影 所以我在寻找更好的方法来完成它

有什么想法吗


谢谢

通过使用
in
操作符获取数组中具有Actor\u ID值的所有Actor对象,您可以一次性获取所有现有的
Actor
对象。像这样:

NSPredicate *P=[NSPredicate predicateWithFormat:@"actor_ID IN %@", arrayOfIdValues];
这将加快您的
Actor
fetch,这似乎是您的瓶颈