對象此刻,我有兩個核心數據模型,模型A和模型BCoreData訪問跨模型
模型A從模型B需要的值(型號A - > ENTITY1 - > valueFromModelB)
目前,我在模型A的NSObject的子類中執行獲取請求和過濾。但是,這看起來效率不高,因爲我需要經常更新此值。
完成此操作的最佳方法是什麼?將模型A和模型B的實體合併並創建兩者之間的關係會更好嗎?理想情況下,我想保持這些不同,但如果合併更容易,更高效,那麼我可以走這條路。
對象此刻,我有兩個核心數據模型,模型A和模型BCoreData訪問跨模型
模型A從模型B需要的值(型號A - > ENTITY1 - > valueFromModelB)
目前,我在模型A的NSObject的子類中執行獲取請求和過濾。但是,這看起來效率不高,因爲我需要經常更新此值。
完成此操作的最佳方法是什麼?將模型A和模型B的實體合併並創建兩者之間的關係會更好嗎?理想情況下,我想保持這些不同,但如果合併更容易,更高效,那麼我可以走這條路。
從你的問題,不知道你是否已經看過預取保存一些頭頂的選項。根據核心數據文檔,這是一個預取代碼片段。
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模型,那麼這將節省內存和往返以獲取數據。
在相同的數據模型中創建不同的實體模型&創建實體之間的關係。這將是更容易的更快速&。 :)
看看這裏:[cross-model-relationships-in-nsmanagedobjectmodel-from-merged-models](http://stackoverflow.com/questions/130316/cross-model-relationships-in-nsmanagedobjectmodel-from-合併後的模型)。也許,讓這些實體在同一個模型中更簡單。希望能幫助到你。 –