2013-09-05 3 views
-3

나는 NSArrayNSDictionaries을 가지고 있습니다. 아래 예제에서 사전에서 필요하지 않은 값을 추출하거나 값을 제거해야합니다. id와 NumberValue를 제거해야합니다. 너는 그걸 내가 어떻게 할 수 있는지 안다.NSDictionary의 요소를 제거하는 방법

Array: (
     { 
      customerUS= { 
       DisplayName = "level"; 
       InternalName = "Number 2"; 
       NumberValue = 1; 
       id = xwrf 
      }, 
      customerCAN= { 
       DisplayName = "PurchaseAmount"; 
       InternalName = "Number 1"; 
       NumberValue = 3500; 
       id = adf; 
      }; 
     } 
    ) 

정말 감사드립니다.

+0

먼저 확인한 사항을 JSON이 메모리 ('NSArray','NSDictionary')에 저장하는 데 사용 된 개체와 관련이 있는지 확인 했습니까?그 사실을 알고 나면 수업 자료를보고 문제를 검색 했습니까? 당신은 배우고 싶지 않은 것처럼 보입니다. 누군가가 당신을 위해 일하기를 원할 것입니다. – trojanfoe

답변

1

Apple 문서를 읽으라고 조언합니다.

Collection 개체를 만든 후에 수정하려면 변경 가능한 버전이 필요합니다. NSDictionary에 대해서는 NSMutableDictionary입니다. here을 읽으십시오.

- (void)removeObjectForKey:(id)aKey 

뿐만 아니라 다른 방법이 있습니다 :

우리는 객체를 제거하는 방법이있다. 위에서 언급 한 문서에서 쉽게 참조 할 수 있습니다.

1

우선은, 당신은 제거/삽입/업데이트 (불변)에서NSDictionary/NSArray 당신은 (변경 가능)NSMutableDictionary/NSMutableArrayNSDictionary/NSArray을 변환 할 필요가 없습니다.

같은

NSArray *myArr = ....;  
NSMutableArray *newMutableArr = [myArr mutableCopy]; 

처럼 그런 다음 newMutableArr에서 변경할 수 있습니다.

이러한

for(int i = 0 ; i < newMutableArr.count ; i ++) 
{ 
    [[newMutableArr objectAtIndex:i] removeObjectForKey:@"id"]; 
    [[newMutableArr objectAtIndex:i] removeObjectForKey:@"NumberValue"]; 
} 

편집과 같은 : for loopremoveObjectForKey를 사용하지 않고

, 당신은 사전의 배열을 가지고 있고 모두는 당신이 모든에서 키와 객체를 삭제할 수 있습니다 변경할 수있는 경우 배열의 요소는 다음과 같습니다.

[newMutableArr makeObjectsPerformSelector:@selector(removeObjectForKey:) withObject:@"id"]; 
[newMutableArr makeObjectsPerformSelector:@selector(removeObjectForKey:) withObject:@"NumberValue"]; 
+0

프로그래밍 방식으로이 작업을 수행 할 방법이 없습니다? – HelenaM

+0

@ 헬레나 M - 너 무슨 뜻이야 ?? "프로그래밍 방식으로이 작업을 수행 할 수있는 방법이 없습니다." – iPatel

+0

루프를 사용하지 않고 – HelenaM

0

d에 대해 removeObjectForKey를 찾습니다. NSMutabledictionary에서 레코드를 eleting.

removeObjectForKey는

처럼 뭐든지 키 값을 전달하는 모든이 키 표시 이름, InternalName, NumberValue,

removeObjectForKey:@"id"; 
0

먼저 좋아한다 ID입니다 배열의 배열을 가변 배열로 변환해야합니다. 사전에서 키 - 값 쌍을 제거하십시오.

NSMutableArray *mutableArray = [yourArray mutableCopy];
for(int i=0;i<mutableArray.count;i++){
  NSMutableDictionary *outerDictionary = [mutableArray objectAtIndex:i];
  for(NSString *key in outerDictionary.allKeys){
    NSMutableDictionary *innerDictionary = [outerDictionary objectForKey:key];
    [innerDictionary removeObjectForKey:@"id"];
    [innerDictionary removeObjectForKey:@"NumberValue"];
  } }
관련 문제