2014-04-03 85 views
0

我正在創建一個應用程序,該應用程序檢索特定coutnry的地址列表,並將它們按字母順序排列在字典中。所以阿姆斯特丹將被置於關鍵的「A」之下。字典中的每個鍵的多個值

這些地址從CSV文件中讀取並迭代。我遇到的問題是我用A-Z鍵製作了一本字典。

在我的for循環中,我想將每個地址添加到正確的鍵,但由於它在一個循環中,我一次只有一個ony地址。 [字典setObject]只會放在最後一個值中。

我該如何解決這個問題?

+0

如果你將結構分解爲什麼,這將有所幫助。你是否想要一個包含國家字典的密鑰A到Z的字典,而這些國家的字典又包含一個數組(或一組)城市? – Jenn

+0

沒有基本上我想要的是一個Dictonary的鑰匙從A-Z只有國家名稱添加到右鍵。所以: N - 荷蘭,挪威,尼泊爾 U - 美國 – Mittchel

+0

這個問題與Xcode IDE有什麼關係? –

回答

4

如何使用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]; 
} 
+0

我認爲這應該很好..我今晚會試一試。會接受你的答案!謝謝 – Mittchel

+0

用NSMUteableArrays初始化字典的最佳方法是什麼?我是新的Objective-C,我已經看到了幾個選項在stackoverflow – Mittchel

+0

請看到更新的答案。 – Andrey

0

,對於單個鍵持有多個值的NSDictionary是大多數人所說的multimap

所以我尋找了一些multimap實現,發現CFIOMultimap,它表面上看起來像一個寫得很好的類。我喜歡使用特定的數據類型,因爲它更好地描述了數據結構。

但是,它似乎並不適用於我,每次我嘗試下標時,我都會得到nils。你可以自己嘗試一下,讓我們知道它是否有用。

+0

http://stackoverflow.com/questions/997606/objective-c-implementation-of-a-histogram-or-bag-datastructure也有點相關。 – fatuhoku

相關問題