2011-09-07 5 views
0

전 배열과 사전을 놀면서 iPhone에서 작은 문제로 돌아 다니고 있습니다. 내가 가지고iPhone 사전에 문제가 있습니까?

또한
name = Product; 
    options =  (
       { 
      code = code1; 
      name = "product AAA"; 
     }, 
       { 
      code = code1; 
      name = "product BBB"; 
     }, 
       { 
      code = "code2"; 
      name = "product BBB"; 
     }, 
       { 
      code = "code3"; 
      name = "product CCC"; 
     }, 
       { 
      code = "code3"; 
      name = "product DDD"; 
     }, 
       { 
      code = code4; 
      name = "product EEE"; 
     }, 
       { 
      code = code4; 
      name = "product FFF"; 
     } 
    ); 

지금은 일치하는 제품

matchingProducts 
{ 
    "product BBB", 
    "product CCC", 
    "product DDD" 
) 

의 배열을 가지고, 내가하고 싶은 모든 내가 matchingProducts 배열을 비교하는 사전 제품에서 제거 할 수있는 다음과 같은 데이터와 제품 사전 . 내가 어떻게 해. 참고 : 비즈니스 규칙에 따라 키를 사용하여 개체를 제거 할 수 없습니다. 내가 이름을 반복했지만 나는 최종 결과 사전을 아래와 같이 가져야 만한다. 가능한가?

제 질문에 명확하지 않은 경우 답장을 보내주십시오.

나는 아래의 코드

for (int j = 0; j < matchingProducts.size(); j++) { 
String product = ((Product) matchingProducts.elementAt(i)).name; 

for (int i = 0; i <Product.size(); i++) { 
    String productName = ((Product) Product.elementAt(i)).name; 
    if (product.equals(productName)) { 
    Product.removeElementAt(i); 
    break; 
    } 
} 
} 
+0

배열을 사용하여 사전 값을 추출하고이를 구현하려고 시도했지만 실패했습니다. –

+0

@Devraj 질문을 –

+0

업데이트했습니다 (이 시나리오에서 제품 코드가 있다고 가정합니다).), 비슷한 오브젝트를 일치시키고 제거하는 데 사용하는 규칙은 무엇입니까? 예 : 어떻게하면 '코드 1, 제품 BBB'및 '코드 2, 제품 BBB'제거 사이에 결정 하시겠습니까 – Madhu

답변

1
NSMutableDictionary *Product = initialize like you did with Products; 
NSMutableDictionary *resultant = [NSMutableDictionary alloc]init]; //this will have your result  
NSArray *keys = [Product allKeys]; 
for(int i = 0 ; i < [keys count]; i++) 
    { 
    id temp = [Product objectForKey:keys[i]]; 

bool matchFound = NO; 
for (int j = 0; j < [matchingProduct count]; j++) 
    { 
    id temptemp = [matchingProduct objectAtIndex:j] //Assuming matchingProduct is an NSArray or NSMutableArray 
    if(temp == temptemp) 
     { 
      matchFound = YES; 
     } 
    } 

    if(!matchFound) 
    [resultant addObject:temp];  

}

// 결과 지금 당신이 원하는 것을 가지고를 사용하여 자바에서 유사한 문제를 해결했습니다. 그걸 써.

+0

위의 제품 사전에서 어떻게 dictionary.It 내부적으로 옵션 배열을 보유하고있는 값과 함께 모든 코드 이름에 액세스 할 수 있습니다. –

+0

제품 사전 및 matchingProduts 배열에 대한 선언을 게시 할 수 있습니까? – SayeedHussain

+0

NSDictionary * productDict = nil; 위한 (NSDictionary와 * 상품 딕셔너리) { 경우 ([딕셔너리 objectForKey의 "이름"@] isEqualToString : @ "제품"]) { productDict = 딕셔너리; 휴식; }} \t \t NSArray * matchingProducts; for (int i = 0; i <[selectedStateDictvalues ​​count]; i ++) { NSString * optionString = (NSString *) [selectedStateDictKeys objectAtIndex : i]; if ([optionString isEqualToString : @ "ExcludeProduct"]) { matchingProducts = [[[selectedStateDictvalues ​​objectAtIndex : i] objectForKey : @ "옵션"] valueForKeyPath : @ "@ unionOfObjects.name"] 보유]; }} –

관련 문제