2016-07-06 1 views
0

다음과 같이 사전에 키 - 값 쌍을 저장하는 배열이 필요합니다.작동하지 않는 사전 배열에 특정 키에 대한 배수 값을 저장하는 중 iOS

add =  (
      { 
     ans = abc; 
     que = Fdgdf; 
    }, 
      { 
     ans = hi; 
     que = hello; 
    }, 
      { 
     ans = GM; 
     que = dosa; 
    } 
) 

다음은 내가 시도한 것입니다.

for (int i=0; i<=[addKeyArray count]; i++) { 

     [_addDictNewQA setObject:[addKeyarray objectAtIndex:i] forKey:@"que"]; 
     [_addDictNewQA setObject:[addValuesArray objectAtIndex:i] forKey:@"ans"]; 
[_addArrayNewQA addObject:_addDictNewQA]; 
       } 

여기 addKeyArray 모든 '케'요소를 보유 addValuesArrray 모든 '및'요소를 보유하는 배열이다. 내가 객체를 사전을 새로운 배열 (_addArrayNewQA)에 그 사전을 추가하려면 다음 배열을 설정할 때, 그것은 단지 뭐죠 내 코드에서 잘못된 사람이 말해 주시겠습니까 this-

add =  (
     { 
    ans = GM; 
    que = dosa; 
}, 
     { 
    ans = GM; 
    que = dosa; 
}, 
     { 
    ans = GM; 
    que = dosa; 
} 
) 

처럼 마지막 요소를 표시합니다. 어떤 도움을 주셔서 감사합니다.

답변

0

동일한 객체의 값을 NSMutableDictionary으로 설정하고 있기 때문에 for 루프에서만 사용하는 것처럼 NSMutableDictionary를 전역으로 가질 필요가 없습니다.

당신은 당신은 새로운 내부 사전에 각 반복을 만들 필요가 새 사전을

for (int i=0; i<=[addKeyArray count]; i++) { 
    NSMutableDictionary *_addDictNewQA = [NSMutableDictionary new]; 
    [_addDictNewQA setObject:[addKeyarray objectAtIndex:i] forKey:@"que"]; 
    [_addDictNewQA setObject:[addValuesArray objectAtIndex:i] forKey:@"ans"]; 
} 
[_addArrayNewQA addObject:_addDictNewQA]; 
+0

도움말 및 도움말 주셔서 감사합니다. 그것은 효과가 있었다. – ammy1

+0

귀하의 도움과 시간에 모두 감사드립니다. 그것은 많은 것을 배우는 데 도움이됩니다. – ammy1

0

을 작성해야합니다. 당신이하고있는 일은 똑같은 사전을 반복해서 추가하고 그 내용을 변경하여 마지막 항목을 포함하는 사전들의 배열을 완성하게하는 것입니다.

for (int i=0; i<=[addKeyArray count]; i++) { 
    NSDictionary *innerDict = @{ 
     @"que" : addKeyArray[i], 
     @"ans" : addValuesArray[i] 
    }; 
    [_addArrayNewQA addObject:innerDict]; 
} 

그리고 _addDictNewQA 인스턴스 변수를 제거하십시오.

0

사전을 for 루프에 작성하십시오. 매번 새로운 사전을 만들어야합니다. 그래서 for 루프에 mutable dictionary를 만들고 for 루프에서 (alloc 및 init)을 생성해서는 안되는 가변 배열 (결과 배열)에 그 사전을 추가하십시오.

코드가 for 루프 외부에서 사전을 만든 것으로 보입니다. !!

관련 문제