我正在创建一个应用程序,该应用程序检索特定餐具的地址列表,并按首字母将它们分组在字典中。因此,阿姆斯特丹将置于键“ A”下。
从CSV文件读取这些地址并进行迭代。我遇到的问题是我用A-Z键制作了字典。
在我的for循环中,我想将每个地址添加到正确的键中,但是由于它处于循环中,所以我一次只具有一个唯一的地址。 [字典setObject]将仅放置在最后一个值中。
我应该如何处理?
最佳答案
使用NSDictionary
的NSMutableArrays
(A-Z)怎么办?然后,您将可以添加以下内容:
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
:theDictionary = [NSMutableDictionary dictionary];
for (char c = 'A'; c <= 'Z'; c++) {
theDictionary[[NSString stringWithFormat:@"%c", c]] = [NSMutableArray array];
}