2013-03-19 150 views
1

我在想如果設置NSDictionary reault類型,並且添加關係會在結果中顯示這些對象。NSDictionary結果類型獲取關係中的對象

示例我有一個帶有toCarparts關係的汽車物件。

carPart對象有名稱,品牌等我只想調出carParts.name。

那麼我可以將實體設置爲汽車,然後搜索toCarParts並只返回名稱?

如果是的話我該怎麼做?

謝謝!

回答

6

只能在propertiesToFetch使用到一個關係中,例如:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Car"]; 
[fetchRequest setResultType:NSDictionaryResultType]; 
[fetchRequest setPropertiesToFetch:@[@"name", @"toCarParts.name"]]; 

會工作,如果toCarParts是一對一的關係。它會返回帶有汽車名稱和相關汽車零件名稱的字典。

它不適用於多對多的關係。

+0

它會只返回一部車還是全部? – 2013-03-19 12:53:13

+0

它會在setPropertiesToFetch:(toCarParts.name)''中引發一個異常''對許多關係無效。 – 2013-03-19 13:01:29

+0

@MartinR任何其他選項來獲取一對多關係中的特定屬性? – Leena 2014-11-17 05:52:21

1

不,您不能只提取實體的單個屬性。

UPDATE

看的像這是錯誤。似乎可以使用NSDictionaryResultType僅獲取一些特定屬性,請檢查this鏈接。也許你的問題可以用這個來解決。

P.S.感謝推動我解決這個問題,在上次Marcus Zarra的書中我沒有發現任何關於此的內容。

+0

好吧,如果我要獲取汽車對象的nsdict版本,但我希望它也能獲取關係? – 2013-03-19 12:19:49

+0

噢,現在我不太確定,我會在一分鐘內刪除我的答案。最近讀完Marcus Zarra關於Core Data的書,看起來像我誤解了一些東西。需要再次查看該書。 – 2013-03-19 12:26:21