如何存储一个关键的多个值?

时间:2013-10-24 13:30:34

标签: ios iphone objective-c nsmutabledictionary fuzzy-search

我是客观的新手。我喜欢这样的事情: - 对于每个键,我想存储多个值,如:

2 holds a,b,c
3 holds d,e,f

当按2 3 or 2 3 3时,我希望输出这些6 values.的所有组合我应该使用NSMutableDictionary吗?我需要一些建议!

5 个答案:

答案 0 :(得分:5)

您可以将数组存储在词典中。例如

NSDictionary *mapping = @{@"2": @[@"a", @"b", @"c"]};

并且您可以为每个按键将字典中数组中的对象添加到中间数组

NSMutableArray *values = [NSMutableArray array];
...
// For each time a key is pressed
[values addObjectsFromArray:@[mapping[keyPressed]]];
...

如果要显示输出,可以计算values数组中所有值的所有组合。

答案 1 :(得分:3)

对于存储单个键的多个值,您需要添加数组作为字典键的值,例如

NSArray *temArray1 = ...// which has value a,b,c
NSArray *temArray2 = ...// which has value d,e,f

将此数组添加为特定键的值,例如

NSMutableDictionary *temDic = [[NSMutableDictionary alloc] init];
[temDic setValue:temArray1 forKey@"2"];
[temDic setValue:temArray1 forKey@"3"];
NSLog(@"%@", temDic)

以上代码根据您的要求描述简单逻辑,根据需要进行更改。

答案 2 :(得分:1)

请试试这个..

 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     );     红=(         F1,         F2,         F3     );     得分=(         10,         20,         三十     );     黄=(         F4,         F5,         F6     ); }

答案 3 :(得分:0)

Objective-c有3种类型的集合:NSArray,NSSet,NSDictionary(及其可变等价物)。所有这些集合只能存储对象。此集合用于不同的情况,因此请尝试查找适合您的案例并使用适当的集合。

P.S。我的第一个愿望是写RTFM

答案 4 :(得分:0)

尝试如下: -

        NSDictionary *yourDict=[NSDictionary dictionaryWithObjects:
    [NSArray arrayWithObjects:@"a", @"b", @"c",nil] 
forKeys:[NSArray arrayWithObjects:@"2",nil]];
相关问题