No, you will get an error if you mutate an array while in fast enumeration mode for a loop. Make a copy of the array, iterate over it and remove it from the original.
NSArray *itemsCopy = [items copy];
for (id item in itemsCopy) {
if ( [item customCheck] )
[items removeObject:item];
}
[itemsCopy release];
source
share