這個問題是由多個線程同時修改數(shù)組引起的玄糟,是個線程安全問題呼猪。
解決辦法:
1.修改數(shù)組在同步隊列中
let queue = DispatchQueue(label:myqueue)
queue.sync {
myArray.append(...)
}
2.在數(shù)組修改前后加鎖
objc_sync_enter(self)
myArray.append(...)
objc_sync_exit(self)
此外祠乃,不加鎖也可能造成以下問題引起閃退
1晕讲、malloc: Heap corruption detected, free list is damaged at 0x600000fb42d0
2絮供、Thread 83: EXC_BAD_ACCESS (code=1, address=0x3eadddea39a0)