清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
//删除数组中相同的元素,遍历时的长度,不能像下面一样用固定的长度len,这样会导致越界,程序崩溃
NSArray *arr=@[@"one",@"1",@"two",@"1",@"one",@"two"];
NSMutableArray *muarr=[NSMutableArray arrayWithArray:arr];
NSInteger i,j,len=muarr.count;
for(i=0;i<len-1;i++){//err
for (j=i+1; j<len; j++) {//err
if([muarr[i] compare:muarr[j]]==NSOrderedSame){
[muarr removeObject:muarr[i]];//err 删除元素时,应该删除指定下标元素,这样删除会导致一次性将所有相同的元素都删掉
}
}
}
NSLog(@"%@",muarr);
}
//下面是程序的正确写法
NSArray *arr=@[@"one",@"1",@"two",@"1",@"one",@"two"];
NSMutableArray *muarr=[NSMutableArray arrayWithArray:arr];
NSInteger i,j;
for(i=0;i<muarr.count-1;i++){
for (j=i+1; j<[muarr count]; j++) {
if([muarr[i] compare:muarr[j]]==NSOrderedSame){
[muarr removeObjectAtIndex:j];
}
}
}
NSLog(@"%@",muarr);
}