我有NSMutableArray
。我也合成了它。我通过xml提取一些文件名等方法从一个方法添加对象。现在在我的数组中,多次出现相同的元素。我需要消除多个对象并获得唯一的对象。如何才能做到这一点?我尝试了下面的代码,但后来出现了一些错误。
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
{
}
}
编辑***我需要通过忽略区分大小写来消除......
答案 0 :(得分:1)
使用NSSet
答案 1 :(得分:0)
只需检查数组是否包含对象:
if(![yourArray containsObject:stringFromXML])
{
[yourArray addObject:stringFromXML]
}
答案 2 :(得分: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++;
}
答案 3 :(得分:0)
if([[array_artist objectAtIndex:i] &&[array_artist objectAtIndex:i+1] caseInsensitiveCompare:@"True"] == NSOrderedSame])
{ 添加元素 }
答案 4 :(得分:0)
将tempArray作为golbally
当您从XML添加对象时,您只需检查
NSString *upCaseString=[stringFromXML uppercaseString];
if(![tempArray containsObject:upCaseString]) {
[array_artist addObject:stringFromXML];
[tempArray addObject:upCaseString];
}
答案 5 :(得分:0)
怎么样:
NSArray *out = [NSSet setWithArray:in].allObjects;