[AVRetainReleaseWeakReference release]:发送到释放实例 0x171a2cd40 的消息
[AVRetainReleaseWeakReference release]: message sent to deallocated instance 0x171a2cd40
[崩溃发生时堆栈的屏幕截图][1]
这发生在:
之后
[self.sampleBufferDisplayLayer 停止请求媒体数据]; [self.sampleBufferDisplayLayer removeFromSuperlayer];
而self.sampleBufferDisplayLayer的地址是0x171a2d040;这是否意味着已经被释放两次的实例(0x171a2cd40)是 AVSampleBufferDisplayLayer 对象内部的东西?那我为什么要为this inside object的twice dealloc error负责呢?有人遭受过这种痛苦吗?
0 libsystem_malloc.dylib 0x0000000196cbd9cc 0x196cb8000 + 22988
1 TTKanKan 0x00000001008733b8 0x1000e0000 + 7943096
2 TTKanKan 0x0000000100864584 0x1000e0000 + 7882116
3 TTKanKan 0x000000010085f1e0 0x1000e0000 + 7860704
4 TTKanKan 0x000000010085f36c 0x1000e0000 + 7861100
5 TTKanKan 0x000000010085edd4 0x1000e0000 + 7859668
6 TTKanKan 0x000000010085f7b8 0x1000e0000 + 7862200
7 TTKanKan 0x000000010085f5fc 0x1000e0000 + 7861756
8 TTKanKan 0x000000010085ef3c 0x1000e0000 + 7860028
9 TTKanKan 0x000000010085ecac 0x1000e0000 + 7859372
10 libsystem_pthread.dylib 0x0000000196d2bdb4 _pthread_body + 160
11 libsystem_pthread.dylib 0x0000000196d2bd10 _pthread_start + 156
12 libsystem_pthread.dylib 0x0000000196d28ee4 thread_start + 0
我通过在另一个线程中删除相同的 AVSampleBufferDisplayLayer 释放和分配来修复它,尽管我已经使用@synchronized(self) 在不同的线程中同步它们。现在 AVSampleBufferDisplayLayer 的释放和分配只发生在一个线程中。
[崩溃发生时堆栈的屏幕截图][1]
这发生在:
之后[self.sampleBufferDisplayLayer 停止请求媒体数据]; [self.sampleBufferDisplayLayer removeFromSuperlayer];
而self.sampleBufferDisplayLayer的地址是0x171a2d040;这是否意味着已经被释放两次的实例(0x171a2cd40)是 AVSampleBufferDisplayLayer 对象内部的东西?那我为什么要为this inside object的twice dealloc error负责呢?有人遭受过这种痛苦吗?
0 libsystem_malloc.dylib 0x0000000196cbd9cc 0x196cb8000 + 22988
1 TTKanKan 0x00000001008733b8 0x1000e0000 + 7943096
2 TTKanKan 0x0000000100864584 0x1000e0000 + 7882116
3 TTKanKan 0x000000010085f1e0 0x1000e0000 + 7860704
4 TTKanKan 0x000000010085f36c 0x1000e0000 + 7861100
5 TTKanKan 0x000000010085edd4 0x1000e0000 + 7859668
6 TTKanKan 0x000000010085f7b8 0x1000e0000 + 7862200
7 TTKanKan 0x000000010085f5fc 0x1000e0000 + 7861756
8 TTKanKan 0x000000010085ef3c 0x1000e0000 + 7860028
9 TTKanKan 0x000000010085ecac 0x1000e0000 + 7859372
10 libsystem_pthread.dylib 0x0000000196d2bdb4 _pthread_body + 160
11 libsystem_pthread.dylib 0x0000000196d2bd10 _pthread_start + 156
12 libsystem_pthread.dylib 0x0000000196d28ee4 thread_start + 0
我通过在另一个线程中删除相同的 AVSampleBufferDisplayLayer 释放和分配来修复它,尽管我已经使用@synchronized(self) 在不同的线程中同步它们。现在 AVSampleBufferDisplayLayer 的释放和分配只发生在一个线程中。