如何在Objective-C中执行多维查找表?

时间:2011-08-03 12:51:00

标签: objective-c cocoa-touch

这里是Objective-C的新手......

我有一个唯一的字符串代码作为我想用来查找相关值的键。

似乎我正在寻找NSDictionary,但我相信这仅用于查找给定键的一个值。

任何人都可以提供有关如何声明/填充多维不可变NSDictionary的代码吗?还有用于检索值的代码吗?

另外,请让我知道我的方式是错误的

由于

3 个答案:

答案 0 :(得分:1)

您可以将所需的任何对象作为NSDictionary中给定键的值。这包括NSArray或甚至另一个NSDictionary。使用其中任何一个都可以将多个值与一个键相关联。

答案 1 :(得分: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%正确。这有意义吗?

答案 2 :(得分:1)

对于嵌套的NSDictionaries或自定义KVC兼容类,您可以使用keyPaths,也可以使用嵌套NSArrays indexPaths

stackoverflow也会给你很多例子。