美文网首页
__NSFastEnumerationMutationHandl

__NSFastEnumerationMutationHandl

作者: fordeson | 来源:发表于2019-01-11 10:44 被阅读8次

    在iOS开发中,有一个比较容易出现的崩溃。就是__NSFastEnumerationMutationHandler,先上代码

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        NSMutableArray *datas = [NSMutableArray arrayWithObjects:@"a", @"b", @"c", nil];
        for (NSString *data in datas) {
            if ([data isEqualToString:@"a"]) {
                [datas removeObject:data];
            }
        }
    }
    

    在运行这段代码过后会出现以上的崩溃,出现这个崩溃的原因是因为在快速枚举中修改了数组的内容。那么怎么处理才可以完美运行呢?其实很简单。只要将forin改为普通的for循环就可以了。

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        NSMutableArray *datas = [NSMutableArray arrayWithObjects:@"a", @"b", @"c", nil];
     
        for (int i = 0; i < datas.count; i++) {
            NSString *data = [datas objectAtIndex:i];
            if ([data isEqualToString:@"a"]) {
                [datas removeObject:data];
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:__NSFastEnumerationMutationHandl

          本文链接:https://www.haomeiwen.com/subject/mbhrvxtx.html