2012-01-04 123 views
2

必須有一種更簡單的方法來完成此操作。我有搜索和搜索,但似乎無法找到我正在尋找的答案。如何檢索核心數據中實體的唯一關係

比方說,我們有這樣 EntityA <的關係 - >> EntityB

如果我創建爲每個實體B的3個實例EntityA 2實例。

在我的viewcontroller中顯示每個EntityA的所有EntityB,它顯示全部6個而不是與它相關的3個。

我可以得到它,以正確顯示的唯一途徑是如果我通過指針從一個控制器到另一個:

viewController2.entityA = viewController1.entityA; 

,然後檢索以下面的方式的結果:

NSMutableArray *result = [[NSMutableArray alloc] initWithArray:[entityA.entityBs allObjects]]; 

我的印象是,如果您最初獲取父實體,則後續提取將基於此而不是全部返回。

任何幫助,將不勝感激。

+0

一般來說這些實體B,通過entityA的實例的第二個視圖控制器,然後使用它的entityBs屬性來獲取值(就像你在代碼中一樣)將是最好的方法來解決這個問題。 – 2012-01-04 22:23:38

回答

2

嘗試類似如下:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *weightEntity = [NSEntityDescription entityForName:@"EntityB" inManagedObjectContext:[[yourCoreDataManager sharedInstance] managedObjectContext]]; 
[fetchRequest setEntity:weightEntity]; 
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"EntityA.name LIKE %@", @"EntityAName"]]; 

NSError *error = nil; 
NSArray *result = [[yourCoreDataManager sharedInstance] managedObjectContext] executeFetchRequest:fetchRequest error:&error]; 

這樣,你只請求只屬於一個給定的實體A.

+0

這意味着我必須在查詢字符串(@「decision.decisionName LIKE%@」,@「DecisionX」)中明確說明EntityAs屬性「name」的值。對? – hafizito 2012-01-05 01:02:32

+0

如果你有一個名稱屬性,這只是一個例子,你可以使用一個ID或任何東西來區分你的A實體,但是,你可以將這個數字/字符串傳遞給新的視圖控制器,並以這種方式進行。 – ferostar 2012-01-05 01:35:52

相關問題