__NSFastEnumerationMutationHandler崩潰

在iOS開發(fā)中,有一個比較容易出現的崩潰。就是__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循環(huán)就可以了。

- (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];
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容