开发者

NSFastEnumerationMutationHandler crash

Why am I getting NSFastEnumerationMutationHandler crash all of a sudden in my code. I am blank why this cra开发者_开发问答sh popped up all of a sudden and how to squash it.


Crash Error: **** Terminating app due to uncaught exception 'NSGenericException', reason: '* **Collection <__NSArrayM: 0x610000859410> was mutated while being enumerated.'*

You must be trying to change an array while you using fast enumeration.

Example

for ( id anObject in anArray ) {
    if ( /* anObject satisfies some condition */ ) {
        [anArray removeObject:anObject];
    }
}

That shouldn't be done. Use a different array or probably filteredArrayUsingPredicate: method to filter. Remedy, however, depends on what you're trying to do.


Came here looking for a solution and ended up taking a copy of the original array to get around the issue.

for (NSObject *object in [array copy]) {
    if(condition) {
        [array removeObject....]
        break;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜