0

3 개의 다른 배열 내에 저장된 값을 기반으로 다른 문자열 순열을 만들 수있는 메서드를 작성하려고합니다. 현재 나는 3 개의 다른 키를 포함하는 NSMutableDictionary을 가지고 있으며 각각의 키와 관련하여 서로 다른 String 객체 목록을 포함하는 NSMutableArray 배열을 가지고 있습니다.다른 배열에서 다른 순열 생성 값

NSMutableDictionary에 저장된 NSMutableArray 배열을 반복하고 각 배열에 대해 문자열 값을 작성합니다. 그래서 본질적으로, 다음과 같은 것 : 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. 그것이 바로 내가하고 싶은 일입니다. 예제에 명시 적으로 정의 된 3 개의 NSEnumerator 클래스 객체가 있습니다. 사전에 3 개 이상의 키가 있다면 어떻게해야합니까? – Maff

+0

각각에 대해 'NSEnumerator'의 인스턴스를 생성하는 키를 반복하여이 인스턴스를 배열에 저장할 수 있습니다. ... 아아, 잠깐, 내가 그걸 추가 할 것이다 ... –

+0

아민, 당신이 대답 해줄 수 있겠 니? – Maff