swift报错Fatal error: UnsafeMutablePointer.deinitialize with negative count

这个问题是由多个线程同时修改数组引起的,是个线程安全问题。

解决办法:

1.修改数组在同步队列中

let queue = DispatchQueue(label:myqueue)

queue.sync {

myArray.append(...)

}

2.在数组修改前后加锁

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)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。