2012-04-18 54 views
0

每當單詞匹配另一個單詞的模式時,我需要將字符串追加到保存在字典中的數組中。下面的第二行(setObject)覆蓋而不是附加。
最終結果應該是字典中的數組,其中鍵(模式)標識了許多適合該模式的字符串。將字符串附加到NSMutableDictionary中的NSMutableArray中

NSMutableDictionary *eqClasses = [[NSMutableDictionary alloc] init]; 
    [eqClasses setObject:tempWordStr forKey:wordPattern]; 

有一種簡單的方法來追加?

回答

1

試試這個:

NSMutableArray* array = [eqClasses objectForKey:wordPattern]; 
if(!array) { 
    // create new array and add to dictionary if wordPattern not found 
    array = [NSMutableArray array]; 
    [eqClasses setObject:array forKey:wordPattern]; 
} 
[array addObject:tempWordStr]; 
+0

非常有用 - 謝謝。這個數組將如何迭代地添加到字典中? (我的目標是創建一個包含數千個數組的字典,每個數組使用keypattern模式,動態添加新數組,動態添加新字符串) – user1278974 2012-04-18 16:08:03

+0

該數組已經在字典中,代碼只是將字符串對象添加到它結束 – Felix 2012-04-18 16:10:40

+1

我的意思是,該循環需要添加數組(基於wordpattern)並添加字符串到這個數組。所以這個數組可能已經或者可能不會被添加。代碼看起來像什麼1.檢查數組是否存在(按字模式)2.添加新數組(或不),將新字符串添加到數組中。 (我是新的客觀C) – user1278974 2012-04-18 16:22:44

0

你表明,在字典中的值應該是陣列,但在我看來像eqClasses包含NSString的(tempWordStr)。你不需要創建一個NSArray來保存與關鍵字相關聯的NSString,然後使該數組成爲與該關鍵字相對應的字典中的值?如果字典已經包含密鑰,則需要檢索與密鑰關聯的數組,然後將新字符串添加到數組中,然後使用帶有密鑰的數組調用setObject。

+0

是的,我掙扎我猜。我需要一個動態添加數千個數組的字典,並且動態添加數千個字符串。每個數組都由一個wordpattern(字典中的鍵)表示,值爲實際數組。 – user1278974 2012-04-18 16:10:05

+0

你能否包含一段代碼來說明你的建議? – user1278974 2012-04-18 16:10:44