2010-04-18 60 views
1

我在與陣列和鑰匙的麻煩,我還從我的數據庫的數組:iPhone - 合併鍵在NSArray中(的Objective-C)

NSArray *elementArray = [[[menuArray valueForKey:@"meals"] valueForKey:@"recipe"] valueForKey:@"elements"] 

這裏的問題是,我想我的所有菜單中的所有元素都包含在所有菜單中,例如: [elementArray objectAtIndex:0] = my first element etc... 在上面的示例中,元素由鍵分隔。 我怎樣才能得到它?

希望這是很清楚......

感謝

+0

清除泥漿。 ;-)你能否提供一些有關數據結構的信息? – jlehr 2010-04-18 22:01:55

+0

好的......我不知道它是否會澄清問題,但讓我們試試吧! 我有一個與菜單有一對多關係的用戶,這個菜單與用餐有一對多的關係,這個關係與和元素有一對多關係的菜譜有多對一的關係。 我想得到的是我的三個菜單在數組中的所有元素... 希望它更清晰; o) – ncohen 2010-04-19 01:31:05

回答

0

從您的代碼段,這是我不清楚你的數據是如何構成的,但我認爲這是類似於具有NSDictionary(稱爲aDictionary )的NSArray,並希望將所有NSArray合併成一個。如果是這樣的話,那麼:

NSMutableArray *resultArray = [[[NSMutableArray alloc] init] autorelease]; 
for (id dictionaryKey in aDictionary) { 
    [resultArray addObjectsFromArray:[aDictionary objectForKey:dictionaryKey]]; 
} 
return [NSArray arrayWithArray:resultArray]; 

(此代碼尚未經過測試)

+0

它似乎不是我正在尋找...但感謝!看看我的評論(我自己的問題) – ncohen 2010-04-19 01:32:12

+0

你使用鍵值編碼和/或CoreData嗎? – Isaac 2010-04-19 05:14:15

+0

是的,我正在使用核心數據。問題是,當我得到一個對象數組(例如我的三個菜單)[user.menu allObjects]時,我可以用鍵[[user.menu allObjects] valueForKey:@]來達到它的屬性(例如用餐,食譜和元素) 「膳食」]。但是就像我上面所說的,我想要一個數組中的所有元素 – ncohen 2010-04-19 10:19:24