2010-05-26 60 views
1

我想创建一个NSDictionary(或类似的东西),每个值有两个键。它将用于英语/西班牙语单词查询,其中:NSDictionary:每个值有两个键?

  • 每个值都是包含英语和西班牙语中所有共轭动词的数组。
  • 每个(二)项既包含英语动词不定式(如“是”,“去”)和西班牙不定式

这样一来,我可以看看一个字了,无论语言的基础上,值每个值有两个键。

下面是一个例子:

  • 键: “要” 或 “querer”
  • 值: “希望”, “希望”, “希望”, “希望”, “希望”, “quiero”,“quieres”,“quiere”,“queremos”,“quieren”]
+0

另外,如果有这样比使用一个NSDictionary一个更好的办法,请让我知道,因为这不是一成不变设置为NSDictionary的。 – Derek 2010-05-26 01:40:25

回答

3

只需添加与共轭动词阵列两次的两个不同的密钥,则该值仅仅是一个指针阵列,所以很少有内存开销。当你检索“want”或“querer”的值时,你实际上得到了与你想要的完全相同的数组。

问候, 塞巴斯蒂安·梅克伦堡

+0

谢谢塞巴斯蒂安。这是否意味着我将不得不为每个动词创建单独的数组变量(例如NSArray * want = [[NSArray alloc] initWithObject ...等等),或者我可以在字典中分配两次数组它仍然只会在内存中使用1个空间? – Derek 2010-05-26 02:12:21

+1

@Derek:你不需要创建单独的变量,你绝对不应该创建两个单独的数组。您使用英文键将数组添加到字典中,然后再使用西班牙语键。同一阵列两次。你可以用同一个变量来做。 – Chuck 2010-05-26 02:27:17

+0

@derek查克是正确的,不要分配数组两次,做这样的事情:NSArray * want = [[NSArray alloc] initWithObject ...]; [dict setObject:want forKey:@“want”]; [dict setObject:want forKey:@“querer”]; (对不起,评论似乎不支持代码标签:-) – 2010-05-26 02:57:09