的元件的整數值我有一個NSMutable陣列插入這樣的元件:檢查0作爲從一個的NSMutableArray
[availableSeatsArray addObject:[NSString stringWithString:num_available]];
我想刪除具有的零或低的值的數組中的元素。我試着用int值和它的字符串值來檢查元素的值,但它總是傳遞'0'元素的情況。下面前後數組的控制檯輸出。
for (int i=0;i<[availableSeatsArray count]; i++) {
if ([[availableSeatsArray objectAtIndex:i] intValue] <= 0 || ([[availableSeatsArray objectAtIndex:i] isEqualToString:@"0"])) {
NSLog(@"Removed index: %d", [[availableSeatsArray objectAtIndex:i] intValue]);
[availableSeatsArray removeObjectAtIndex:i];
}
}
控制檯輸出:
Available array: (
"-2",
10,
5,
"-5",
0,
10,
10,
)
2012-08-14 11:13:28:002 -[dmbAddReservation viewWillAppear:] [Line 1074] Removed index: -2
2012-08-14 11:13:28:004 -[dmbAddReservation viewWillAppear:] [Line 1074] Removed index: -5
2012-08-14 11:13:28:006 -[dmbAddReservation viewWillAppear:] [Line 1083] Available array: (
10,
5,
0, // I cannot explain why this element was not removed
10,
10,
)
這就是爲什麼你不應該枚舉它時修改數組。 – 2012-08-14 15:24:01
+1 @ H2CO3,在枚舉過程中不要修改。通過過濾你想要的元素來創建一個新的數組。 – Ravi 2012-08-14 15:28:00
...或者在枚舉數組**的**副本**時修改原始數組;或者 – 2012-08-14 15:30:03