关于数组删除的问题

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