2012-03-12 9 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 
    { 

    } 
} 

私も大文字と小文字の区別を無視することによって排除する必要があるEDIT *** ...

+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のすべての値を追加します

int i1=0; 

tempArray = [NSMutableArray alloc] init]; 

while (i1 < [array_artist count]) {  

    if ([tempArray containsObject:[array_artist objectAtIndex:i1]) { 
    //Do not Add  
    } 
    else { 
     //Add object 
     [tempArray addObject:array_artist:i1];   
    } 

    i1++; 
} 
+0

私はすでにこれで試してみましたが、何も配列に追加されていません。 – priya

+0

投稿した上記のコードを試しましたか? – Rupesh

+0

はい。あなたのコードは私のために働いていません。しかし、Rao Rulesのコードでは、変更があった場合でも要素は削除されません。例:cat cAtは同じでも追加されます。 – priya

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

{ 要素を追加 }

0

をチェックする必要がXMLからオブジェクトを追加する場合などgolbally

をtempArrayを取る:

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

関連する問題