2011-05-05 57 views
0

我有一個存儲電影和演員的核心數據。 我通過json獲取電影列表。每部電影都有演員陣容(演員,角色)CoreData:添加兩級fetchRequest

所以我有Movie,Actor,ActorRole實體。 當我收到電影列表(每部電影都有一個唯一的movieid): - 目前抓取所有的電影在我的數據庫 - 我創造existingMoviesID 的NSSet中 - 我創造newMoviesID 的NSSet中 - 我做一個負設置爲得到所有真正的新電影 - 我循環通過這些新項目將它們添加到CoreData

這是非常快,因爲我只做一個獲取請求。 現在它變得很慢時,我想投添加到數據庫 什麼添加一個新的電影時,我現在做的事: - 讓演員ID - 對於演員ID 創建FetchReqyest - 執行FetchRequest - 如果未找到我添加了一個新的演員,否則得到一個在CoreData - 我創造它創建的電影和演員之間的關係ActorRole

我想是因爲我做的一個獲取每部電影 所以我這是令人驚訝的速度慢我正在尋找更好的方法來實現它。

任何想法?

感謝

回答

0

你可以通過使用IN運營商獲取所有一氣呵成現有Actor對象來獲取數組中的所有與actor_ID值演員的對象。像這樣:

NSPredicate *P=[NSPredicate predicateWithFormat:@"actor_ID IN %@", arrayOfIdValues]; 

這將加快您的獲取Actor這似乎是你的瓶頸。