在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];
}
}
}