-1

비록 루프 루프를 사용하고 NSMutableDictionary에 데이터를 삽입하고 NSMutableDictionary가있는 NSMutableArray에, 코드는 매우 간단하고 다음과 같이인지 삽입하고 :포인터가 이전 루프의 데이터를 업데이트하지 못하게하는 방법은 무엇입니까?

for (NSDictionary *selectedOption in selectedOptions) { 
    NSString *name = selectedOption[@"name"]; 
    NSString *value = selectedOption[@"value"]; 
    [variantRow setObject:name forKey:@"name"]; 
    [variantRow setObject:value forKey:@"value"]; 
    [variantInfo addObject:variantRow]; 
} 

I 해결하고자하고 문제가 그 * 이름과 * 값은 항상 variantInfo NSMutableArray에 이전에 삽입 된 dicts에 대한 루프의 마지막 값을 가져옵니다, 나는 포인터 등을 삽입하고 있기 때문에 내 문제가 있다고 가정하고 있지만 어떻게 할 수 있는지 이해할 수 없습니까? 값을 삽입하고 앞으로의 삽입이 이전 삽입에 영향을 미치지 않도록해야합니다.

나는 설명이 이해하기 쉽도록 설명하기를 바랍니다.

답변

0

모든 반복에서 동일한 NSDictionary 개체 참조 (variantRow)를 수정하고 배열 variantInfo에 추가하려고합니다. 새 NSDictionary 객체를 만들어야합니다.

for (NSDictionary *selectedOption in selectedOptions) { 
    NSString *name = selectedOption[@"name"]; 
    NSString *value = selectedOption[@"value"]; 
    if(name && value) { 
     NSDictionary* newVariantRow = @{"name": name, @"value":value}; 
     [variantInfo addObject: newVariantRow]; 
    } 
} 
관련 문제