2010-05-03 69 views
2

我執行核心數據提取指定的謂詞如下:核心數據提取僅返回唯一的管理對象

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"identifier IN %@", favoritesIDs]; 

當存在favoriteIDs陣列中重複的項目,該找取請求僅返回1級管理的對象。我如何確保獲取多個實例?謝謝。

回答

3

對上下文執行提取請求永遠不會爲任何給定的託管對象上下文返回多個實例;您將不得不以其他方式管理虛擬實例的數量。實際上,以前從上下文中獲得的任何故障對象都會在隨後對上下文執行的請求中產生該對象的同一實例(因此即使執行多個請求,您也可能會得到同一個對象實例)。

+0

請注意,這僅適用於使用單個「NSManagedObjectContext」的情況。當你有多個'NSManagedObjectContext'時,比如在多線程環境中,每個'NSManagedObjectContext'有一個實例。 – 2010-05-03 15:27:02

+0

@Marcus S. Zarra:每個MO上下文需要一個實例;當然,管理對象在這種情況下是沒有意義的。編輯。 – 2010-05-04 04:33:29

相關問題