字典中每个键的多个值

时间:2014-04-03 17:06:02

标签: ios objective-c

我正在创建一个应用程序,该应用程序检索特定coutnry的地址列表,并通过第一个字母将它们分组到字典中。所以阿姆斯特丹将被置于关键的" A"。

从CSV文件中读取这些地址并进行迭代。我遇到的问题是我用A-Z键创建了一本字典。

在我的for循环中,我想将每个地址添加到正确的密钥,但由于它在一个循环中,我一次只有ony地址。 [dictionary setObject]只会放在最后一个值中。

我该如何处理?

2 个答案:

答案 0 :(得分:4)

使用NSDictionary的{​​{1}}(A-Z)怎么样?然后,您就可以添加如下项目:

NSMutableArrays

您可以像这样初始化for (NSString* theName in (...)) { NSString* firstLetter = [[theName substringToIndex:1] uppercase]; // Check this in case there is 'malformed' input, e.g. strings beginning // with non-alpha characters if ([theDictionary objectForKey:firstLetter]) { [theDictionary[firstLetter] addObject:theName]; } else { NSLog(@"Skipping item %@", theName); } }

theDictionary

答案 1 :(得分:0)

大多数人称之为multimapNSDictionary保存了单个键的多个值。

所以我一直在寻找一些多图实现,并找到了CFIOMultimap,它表面看起来就像一个写得很好的类。我喜欢使用特定的数据类型,因为它更好地描述了数据结构。

但是,它似乎对我不起作用,每次我尝试下标它都会得到nils。您可以亲自尝试一下,让我们知道它是否有用。