2012-04-18 2 views
0

Мне нужно добавить строки в массив, хранящийся внутри словаря, каждый раз, когда слово соответствует шаблону другого слова. Вторая строка ниже (setObject) перезаписывает вместо добавления.
Конечный результат должен быть массивом в словаре, где ключ (шаблон) идентифицирует множество строк, которые соответствуют этому шаблону.Добавление строк в NSMutableArray в NSMutableDictionary

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

Очень полезно, спасибо. И как этот массив будет итеративно добавлен в словарь? (Моя цель - иметь словарь с тысячами массивов, каждый массив с использованием wordpattern для ключа, новые массивы добавляются динамически, новые строки добавляются динамически) – user1278974

+0

массив уже находится в словаре, код просто добавляет к нему строковый объект в end – Felix

+1

Что я имею в виду, цикл должен добавлять массивы (на основе wordpattern) и добавлять строки к этим массивам. Таким образом, массив может быть или не быть уже добавлен. Как бы выглядел код 1.check, если массив существует (по wordpattern). 2. Добавьте новый массив (или нет), добавьте новую строку в массив. (Я новичок в объекте C) – user1278974

0

Вы указываете, что значения в словаре должны быть массивами, но он смотрит на меня, как eqClasses содержит NSStrings (tempWordStr). Вам не нужно создавать NSArray для хранения NSStrings, связанных с ключевым словом, а затем сделать массив значением в словаре, который соответствует ключевому слову? Если словарь уже содержит ключ, вам нужно получить массив, связанный с ключом, добавить новую строку в массив, а затем вызвать setObject с помощью массива с ключом.

+0

Да, я боюсь, я думаю. Мне нужен словарь, который динамически добавляет тысячи массивов, а массивы динамически добавляют тысячи строк. Каждый массив представлен символом wordpattern (ключ в словаре), а значение является фактическим массивом. – user1278974

+0

Не могли бы вы включить фрагмент, чтобы проиллюстрировать ваше предложение? – user1278974

Смежные вопросы