0

Я пытаюсь написать метод, который позволяет мне создавать различные перестановки строк, основанные на значениях, которые я сохранил в трех разных массивах. В настоящее время у меня есть NSMutableDictionary, который содержит 3 разных ключа и связан с каждым ключом. Мы имеем массив NSMutableArray, который содержит список различных объектов String.Создание различных перестановок из разных значений массивов

Как woulld прокручиваю каждый из массивов NSMutableArray, которые хранятся в моем NSMutableDictionary и строят строковое значение для каждого узла из массивов. По существу, примерно следующее: A1[0] = "Hello", A2[0] = "There", A3[0] = "Guys", что по существу построит мне строку вроде этого: «HelloThereGuys».

Любые предложения или, возможно, различные подходы к этой проблеме будут оценены.

ответ

1

Прежде всего, я хочу согласиться с hochl. ;-) Но я думаю, что вы хотите создать строку, содержащую слово из каждого массива в той же позиции индекса?

NSMutableArray *enums = [NSMutableArray new]; 
for(NSString *key in dictionary) 
{ 
    NSEnumerator *enum = [dictionary[key] objectEnumerator]; // Forgot that in prior version 
    [enums addObject:enum]; 
} 

while(YES) 
{ 
    NSMutableString *line = [NSMutableString new]; 
    BOOL done = NO; 
    for(NSEnumerator *enum in enums) 
    { 
    NString *word = [enum nextObject]; 
    if(word == nil) 
    { 
     done = YES; 
     break; 
    } 

    [line addString:word]; 
    } 

    if (done) 
    { 
    break; 
    } 

    NSLog (@"%@", line); 
} 

Я правильно понял?

+0

Amin spot on. Это именно то, что я хочу делать. В вашем примере явно определены объекты класса 'NSEnumerator', что, если в словаре есть более 3 ключей? – Maff

+0

Вы можете выполнять итерацию по клавишам, создавая экземпляр 'NSEnumerator' для каждого и хранить эти экземпляры в массиве. ... Ах, подождите, я добавлю, что ... –

+0

Амин, не могли бы вы добавить, что вам ответили? – Maff