2011-08-03 50 views
0

Objective-C的新手在這裏...如何在Objective-C中執行多維查找表?

我有一個唯一的字符串代碼作爲我想用來查找關聯值的鍵。

看來一個NSDictionary是我正在尋找,但我相信這只是用來查找給定的鍵的一個值。

任何人都可以提供如何聲明/填充多維不可變NSDictionary的代碼?此外代碼來檢索值?

另外,請讓我知道我要對這個錯誤的方式

感謝

回答

1

編輯:字典中的數組示例...使用您的評論中的示例數據。

NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init]; 
NSArray *firstSet = [[NSArray alloc] initWithObjects:43, 22]; 
NSArray *secondSet = [[NSArray alloc] initWithObjects:32, 50]; 

[myDictionary setValue:firstSet forKey:@"010"]; 
[myDictionary setValue:secondSet forKey:@"011"]; 

// Get a value out - should be the 50 that you want 
NSInteger *myValue = [[myDictionary objectForKey:@"011"] objectAtIndex:1]; 

未測試 - 但應該是95%正確。這有意義嗎?

+0

嗯,不幸的是,我似乎無法得到它的工作。你能夠提供實際的價值嗎?即如果格式是[唯一碼,百分比1,百分比2]並且條目1是[010,43,22],則條目2是[011,32,50]?然後展示如何從第二個入口獲得50個?如果這太要求我理解 – sayguh

+0

我的例子在字典中嵌入字典,所以你需要兩個鍵才能達到50 - 這是我的答案,以回答你的'多維詞典'。現在你已經解釋了你的問題,我有一個問題。您可以將您的示例作爲存儲在字典中的數組來執行。我會試着重寫這個例子。 – iandotkelly

+0

@sayguh - 我已經更新了示例。如果你擔心這會花費太多時間 - 不用擔心,但是如果它能幫助你,請不要忘記加註和/或接受答案。這是人們如何「獎勵」其他人在這裏獲得幫助,如果你不這樣做,那麼人們會注意到並停止回答問題。樂意效勞。 – iandotkelly

1

你可以讓你想要的任何對象是在NSDictionary給定鍵的值。這包括NSArray甚至另一個NSDictionary。使用這些中的任何一個都可以讓您將多個值與一個鍵相關聯。

+0

是的,我想這樣我似乎無法找到一個好的代碼示例。無論如何,你可以提供一個? – sayguh

1

對於嵌套的NSDictionaries或自定義的KVC complient類,您可以使用keyPaths和嵌套的NSArraysindexPaths

另外stackoverflow會給你很多例子。