我正在創建一個應用程序,該應用程序檢索特定coutnry的地址列表,並將它們按字母順序排列在字典中。所以阿姆斯特丹將被置於關鍵的「A」之下。字典中的每個鍵的多個值
這些地址從CSV文件中讀取並迭代。我遇到的問題是我用A-Z鍵製作了一本字典。
在我的for循環中,我想將每個地址添加到正確的鍵,但由於它在一個循環中,我一次只有一個ony地址。 [字典setObject]只會放在最後一個值中。
我該如何解決這個問題?
我正在創建一個應用程序,該應用程序檢索特定coutnry的地址列表,並將它們按字母順序排列在字典中。所以阿姆斯特丹將被置於關鍵的「A」之下。字典中的每個鍵的多個值
這些地址從CSV文件中讀取並迭代。我遇到的問題是我用A-Z鍵製作了一本字典。
在我的for循環中,我想將每個地址添加到正確的鍵,但由於它在一個循環中,我一次只有一個ony地址。 [字典setObject]只會放在最後一個值中。
我該如何解決這個問題?
如何使用NSDictionary
(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
這樣的:
theDictionary = [NSMutableDictionary dictionary];
for (char c = 'A'; c <= 'Z'; c++) {
theDictionary[[NSString stringWithFormat:@"%c", c]] = [NSMutableArray array];
}
,對於單個鍵持有多個值的NSDictionary
是大多數人所說的multimap。
所以我尋找了一些multimap實現,發現CFIOMultimap,它表面上看起來像一個寫得很好的類。我喜歡使用特定的數據類型,因爲它更好地描述了數據結構。
但是,它似乎並不適用於我,每次我嘗試下標時,我都會得到nils。你可以自己嘗試一下,讓我們知道它是否有用。
http://stackoverflow.com/questions/997606/objective-c-implementation-of-a-histogram-or-bag-datastructure也有點相關。 – fatuhoku
如果你將結構分解爲什麼,這將有所幫助。你是否想要一個包含國家字典的密鑰A到Z的字典,而這些國家的字典又包含一個數組(或一組)城市? – Jenn
沒有基本上我想要的是一個Dictonary的鑰匙從A-Z只有國家名稱添加到右鍵。所以: N - 荷蘭,挪威,尼泊爾 U - 美國 – Mittchel
這個問題與Xcode IDE有什麼關係? –