2014-09-21 66 views
0

我在阵列5分的对象和要删除环2,但我在下面的代码NSArray中没有删除对象

NSMutableArray *totalPages = [[NSMutableArray alloc] init]; 
[totalPages addObject:@"Test1"]; 
[totalPages addObject:@"Test2"]; 
[totalPages addObject:@"Test3"]; 
[totalPages addObject:@"Test4"]; 
[totalPages addObject:@"Test5"]; 

int currentPage = 2; 

for (int x = 0; x < [totalPages count]; x++) { 

    //int pageIds = [[totalPages objectAtIndex:x] intValue]; 
    //NSLog(@"%d",pageIds); 

    NSLog(@"Array Count %d", (int)[totalPages count]); 
    NSLog(@"Current Page %d", currentPage); 
    NSLog(@"Current Iterator Value %d", x); 

    if (x > currentPage) { 

     [totalPages removeObjectAtIndex:x]; 

     NSLog(@"Array Count %d", (int)[totalPages count]); 
     NSLog(@"Number of Pages to be removed %d", x); 
    } 
} 

小的小问题,当我要删除“TEST4”和“TEST5”,但我的上述代码只删去“TEST5”如果我保持这种逻辑

if (x >= currentPage) 

所以它删除我的“TEST4”和“TEST5”对象,但逻辑失败时INT当前页= 0;那么什么是推荐的方法来删除Test4和Test5作为数组中的对象是动态添加的,当currentPage = 0时;所以Arrays只有一个Object作为页面。

+0

[迭代时从NSMutableArray中移除的最佳方法?](http://stackoverflow.com/questions/111866/best-way-to-remove-from-nsmutablearray-while-iterating) – 2014-09-21 18:05:27

回答

2

数组正在从您删除元素时发生变化,它正在缩短。

调整你的陈述并倒计数,这应该为你解决问题。