Я передаю переменную другому методу.при доступе к этому свойству приложение вылетает с ошибкой EXC_BAD_ACCESS.
in class1:
CVPixelBufferRef pixelBuffer;
@implementation class1
- (void)captureOutput:(AVCaptureOutput *)output didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
dispatch_async( dispatch_get_main_queue(), ^{
predictions = [dTFG runX:pixelBuffer orientation: UIDeviceOrientationPortrait CardRect: _vwRect];
}
}
}
in class2:
- (NSArray*) runX:(CVPixelBufferRef) pixelBuffer orientation: (UIDeviceOrientation) orientation CardRect:(CGRect) CardRect {
CFRetain(pixelBuffer); // Error: Thread 1: EXC_BAD_ACCESS (code=1, address=0x800000060)
}
Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x800000060)
Когда я комментировал dispatch_async, сбойне произошло.
Согласно другому ответу, эта ошибка (вероятно) из-за освобожденного объекта.но почему он освобождается в этой ситуации, но без dispatch_async не освобождается.