我正在创建一个应用程序,该应用程序检索特定coutnry的地址列表,并通过第一个字母将它们分组到字典中。所以阿姆斯特丹将被置于关键的" A"。
从CSV文件中读取这些地址并进行迭代。我遇到的问题是我用A-Z键创建了一本字典。
在我的for循环中,我想将每个地址添加到正确的密钥,但由于它在一个循环中,我一次只有ony地址。 [dictionary setObject]只会放在最后一个值中。
我该如何处理?
答案 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)
大多数人称之为multimap的NSDictionary
保存了单个键的多个值。
所以我一直在寻找一些多图实现,并找到了CFIOMultimap,它表面看起来就像一个写得很好的类。我喜欢使用特定的数据类型,因为它更好地描述了数据结构。
但是,它似乎对我不起作用,每次我尝试下标它都会得到nils。您可以亲自尝试一下,让我们知道它是否有用。