2012-03-12 8 views
1

나는 NSMutableArray을 가지고 있습니다. 나는 그것을 종합했다. 몇 가지 파일 이름 등의 XML 추출에 의해 메서드에서 개체를 추가하고 있습니다. 이제는 내 배열에 동일한 요소가 여러 번 나타납니다. 여러 객체를 제거하고 고유 한 객체 만 가져와야합니다. 어떻게 할 수 있습니까? 아래 코드를 시도했지만 오류가 발생했습니다.NSMutableArray에서 중복 된 요소 제거

NSString *AName = [CompleteFileName_string1 substringWithRange:ArtistRange]; 
[array_artist addObject:AName]; 
for(int i=0; i < [array_artist count]; i++) 
{ 
    if([[array_artist objectAtIndex:i] isEqualToString:[array_artist objectAtIndex:i+1]]) 
    { 
     [[array_artist objectAtIndex:i+1]=NULL]; 
    } 
    else 
    { 

    } 
} 

편집 *** 내가 함께 ... 너무 대소 문자 구분을 무시함으로써

+2

XML에서 객체를 추가 할 때 if (! [array_artis containsObject : stringFromXML]) {{array_artist addObject : stringFromXML]; –

+0

예, 이제 괜찮아요. 대답 해주세요. 그래서 그것을 선택할 수 있습니다 – priya

+0

NSSet은 갈 방법입니다 ... –

답변

0

{ 요소 추가}

NSString *upCaseString=[stringFromXML uppercaseString]; 

if(![tempArray containsObject:upCaseString]) {  
    [array_artist addObject:stringFromXML]; 

    [tempArray addObject:upCaseString]; 
} 
+0

대소 문자 구별? 그것의 비교가되지 않는다 – priya

+0

나는 나의 대답을 업데이트했다. 지금 시도해 보라. –

0

배열이 객체가 포함되어있는 경우 단순히 확인 :

if(![yourArray containsObject:stringFromXML]) 
{ 
      [yourArray addObject:stringFromXML] 
} 
+0

나는 첫 번째 코멘트 로이 답변을 가지고. 그러나 요소 민감도를 확인하지 않고 요소가 추가되는 것과 같은 문제가 발생합니다. 어떻게 제거 할 수 있습니까? – priya

+0

다른 방법으로 사용할 수 있습니다 원래 code.if ([array_artist objectAtIndex : i] && [array_artist objectAtIndex : i + 1] caseInsensitiveCompare : @ "True"] == NSOrderedSame])에서 문자열의 비 구분 비교를 사용할 수 있습니다 { 요소 추가 } –

+0

어떻게 수행하나요? NSString AName 있고이 배열에 추가 할 수 있습니다. 대소 문자를 구분하지 않는 방법을 확인하는 방법은 무엇입니까? – priya

0

다음 코드를 사용하십시오 .. 먼저 array_artist의 모든 값을 더하십시오

012 3,
+0

나는 이미 이것으로 시도했지만 아무것도 배열에 추가되고 있습니다 .. – priya

+0

위의 코드를 게시 했습니까? – Rupesh

+0

예. 코드가 작동하지 않습니다. 그러나 Rao Rules의 코드는 경우에 따라 변경 사항이 있으면 여전히 제거되지 않습니다. 예 : cat cAt는 동일한 경우에도 추가됩니다. – priya

0
if([[array_artist objectAtIndex:i] &&[array_artist objectAtIndex:i+1] caseInsensitiveCompare:@"True"] == NSOrderedSame]) 

당신이 XML에서 오브젝트를 추가 할 때와 같은 golbally

는 당신이 단지 확인하기 위해 tempArray을 가지고

0

무엇에 대해 :

NSArray *out = [NSSet setWithArray:in].allObjects; 

?