我是新來的目標c。我是有這樣的事情有趣: - 每個關鍵我想存儲像多個值:如何存儲一個關鍵的multple值?
2 holds a,b,c
3 holds d,e,f
當按下2 3 or 2 3 3
,我想有在輸出的所有這些6 values.
組合我應該使用的NSMutableDictionary爲了這?我需要一些建議!
我是新來的目標c。我是有這樣的事情有趣: - 每個關鍵我想存儲像多個值:如何存儲一個關鍵的multple值?
2 holds a,b,c
3 holds d,e,f
當按下2 3 or 2 3 3
,我想有在輸出的所有這些6 values.
組合我應該使用的NSMutableDictionary爲了這?我需要一些建議!
您可以將數組存儲在字典中。例如
NSDictionary *mapping = @{@"2": @[@"a", @"b", @"c"]};
,你可以爲每個鍵按壓在辭典從陣列添加的對象的中間陣列
NSMutableArray *values = [NSMutableArray array];
...
// For each time a key is pressed
[values addObjectsFromArray:@[mapping[keyPressed]]];
...
當要顯示您計算所有組合對於所有的值輸出在values數組中。
對於單個按鍵的存儲多個值,則需要添加陣列作爲字典鍵的值,例如像,
NSArray *temArray1 = ...// which has value a,b,c
NSArray *temArray2 = ...// which has value d,e,f
添加這個數組作爲特定鍵的值,例如像
NSMutableDictionary *temDic = [[NSMutableDictionary alloc] init];
[temDic setValue:temArray1 [email protected]"2"];
[temDic setValue:temArray1 [email protected]"3"];
NSLog(@"%@", temDic)
上面的代碼根據您的需求描述了簡單的邏輯,根據需要進行更改。
Objective-c有3種類型的集合:NSArray,NSSet,NSDictionary(及其可變等價物)。所有這些集合都只能存儲對象。這個集合用於不同的情況,所以嘗試找到適合你的情況並使用適當的集合。
P.S.我的第一個願望是編寫RTFM
嘗試象下面這樣: -
NSDictionary *yourDict=[NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects:@"a", @"b", @"c",nil]
forKeys:[NSArray arrayWithObjects:@"2",nil]];
我做了Voxar的例子,但爲什麼這是不正確的?[values addObjectsFromArray:[mapping [@「2」]]]; –
我打算在輸入時顯示值,我有值2 :)(鍵2) –
是的,它會根據您從字典中讀取的條件顯示2 –
請試試這個..
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSArray *aryFlashCardRed=[[NSArray alloc]initWithObjects:@"f1",@"f2",@"f3", nil];
NSArray *aryFlashCardYellow=[[NSArray alloc]initWithObjects:@"f4",@"f5",@"f6", nil];
NSArray *aryFlashCardGreen=[[NSArray alloc]initWithObjects:@"f7",@"f8",@"f9", nil];
NSArray *aryScore=[[NSArray alloc]initWithObjects:@"10",@"20",@"30", nil];
[dictionary setObject:aryFlashCardRed forKey:@"red"];
[dictionary setObject:aryFlashCardYellow forKey:@"yellow"];
[dictionary setObject:aryFlashCardGreen forKey:@"green"];
[dictionary setObject:aryScore forKey:@"score"];
顯示字典這樣
{ 綠色=( F7,F8 , f9 ); red =( f1, f2, f3 ); 得分=( 10, 20,); ( f4, f5, f6 ); }
爲什麼這是不正確的? [values addObjectsFromArray:[mapping [@「2」]]]; –
它錯過了@。對於那個很抱歉。 – Voxar