如何为每个键创建一个包含数组的NSDictionary?

时间:2011-06-28 19:41:35

标签: iphone objective-c xcode nsarray nsdictionary


我想知道(如果可能的话)如何为每个键创建一个包含NSArray的NSDictionary。

类似的东西:

@“FirstKey” - [0],[1],[2],[3]
@“SecondKey” - [0],[1],[2],[3]
@“ThirdKey” - [0],[1],[2],[3]
@“FourthKey” - [0],[1],[2],[3]

希望你明白了,谢谢你!

3 个答案:

答案 0 :(得分:7)

您可以将NSArray个实例(或任何其他集合)添加为NSDictionary的值:

NSDictionary *d = [[NSMutableDictionary alloc] init];
[d setValue:[NSArray arrayWithObjects:
               [NSNumber numberWithInteger:0], 
               [NSNumber numberWithInteger:1],
               ...,
               nil]
     forKey:@"FirstKey"];
[d setValue:[NSArray arrayWithObjects:
               [NSNumber numberWithInteger:0], 
               [NSNumber numberWithInteger:1],
               ...,
               nil]
     forKey:@"SecondKey"];
//etc.

或者,如果您没有太多的键/值:

NSArray *values1 = [NSArray arrayWithObjects:
                    [NSNumber numberWithInteger:0], 
                    [NSNumber numberWithInteger:1],
                    ...,
                    nil];
NSArray *values2 = [NSArray arrayWithObjects:
                    [NSNumber numberWithInteger:0], 
                    [NSNumber numberWithInteger:1],
                    ...,
                    nil];
NSDictionary *d = [NSDictionary dictionaryWithObjectsAndKeys:
                     values1, @"FirstKey",
                     values2, @"SecondKey",
                     ...,
                     nil];

答案 1 :(得分:4)

这完全可能。最简单的方法是创建NSArray,然后将其添加为NSDictionary的密钥对象

NSArray *myArray = [NSArray arrayWithObjects:@"One",@"Two", nil];
[myDictionary setObject:myArray forKey:@"FirstKey"];

答案 2 :(得分:1)

是的,您可以将任何对象存储在字典中。对于数值,您需要将它们存储为NSValue或NSNumber对象。