清华大佬耗费三个月吐血整理的几百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); }