BoltClock и zpasternack предоставили два правильных ответа на ваш вопрос, но у меня есть пара советов по улучшению других областей вашего кода.
Если в словаре нет ключа, objectForKey вернет nil.Вы можете использовать это для ускорения проверки ключей.
found = ([self.sections objectForKey:c] != nil);
Вы также можете переместить добавление объектов в первый цикл и удалить второй цикл.
if(!found) {
//add new mutable array
}
[[self.sections objectForKey:c] addObject:sign];
Есть липричина, по которой вы выпускаете знак в первом цикле?Вы не разместили его здесь, вы только что получили его из массива.
NSDictionary автоматически использует быстрое перечисление ключей, поэтому вы можете заменить for(NSString *key in [self.sections allKeys])
на for(NSString *key in self.sections)
.