2012-05-17 69 views
2

對象此刻,我有兩個核心數據模型,模型A和模型BCoreData訪問跨模型

模型A從模型B需要的值(型號A - > ENTITY1 - > valueFromModelB)

目前,我在模型A的NSObject的子類中執行獲取請求和過濾。但是,這看起來效率不高,因爲我需要經常更新此值。

完成此操作的最佳方法是什麼?將模型A和模型B的實體合併並創建兩者之間的關係會更好嗎?理想情況下,我想保持這些不同,但如果合併更容易,更高效,那麼我可以走這條路。

+1

看看這裏:[cross-model-relationships-in-nsmanagedobjectmodel-from-merged-models](http://stackoverflow.com/questions/130316/cross-model-relationships-in-nsmanagedobjectmodel-from-合併後的模型)。也許,讓這些實體在同一個模型中更簡單。希望能幫助到你。 –

回答

1

從你的問題,不知道你是否已經看過預取保存一些頭頂的選項。根據核心數據文檔,這是一個預取代碼片段。

NSManagedObjectContext *context = /* get the context */; 
NSEntityDescription *employeeEntity = [NSEntityDescription 
entityForName:@"Employee" inManagedObjectContext:context]; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:employeeEntity]; 
[request setRelationshipKeyPathsForPrefetching: 
[NSArray arrayWithObject:@"department"]]; 

代碼獲取員工和部門的信息,但我不知道,如果是系在不同的數據模型,可以把它放在使用類似一個NSPersistentStoreCoordinator使用。

從蘋果公司的核心數據性能與推薦的另外一個值得注意的是

每個往返於持久性存儲(每次提取)招致的開銷,無論是在訪問存儲和合並返回的對象到持久棧。您應該避免執行多個請求,如果可以將它們組合成一個請求,它將返回所需的所有對象。您還可以最大限度地減少內存中的對象數量。

因此,如果您可以合併兩個不同的Core Data模型,那麼這將節省內存和往返以獲取數據。

-1

在相同的數據模型中創建不同的實體模型&創建實體之間的關係。這將是更容易的更快速&。 :)