GPUImage 简单代码在执行时崩溃
GPUImage simple code crash on execution
此代码在执行后约 1 秒崩溃 (iOS7) :
-(void)initializeCamera
{
GPUImageStillCamera *stillCamera=[[GPUImageStillCamera alloc]initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
stillCamera.outputImageOrientation=UIInterfaceOrientationPortrait;
GPUImageView *image=[[GPUImageView alloc]initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];
GPUImageGrayscaleFilter *filter=[[GPUImageGrayscaleFilter alloc]init];
[self.view addSubview:image];
[stillCamera addTarget:filter];
[filter addTarget:image];
[stillCamera startCameraCapture];
}
如果在崩溃之前有任何帮助,会显示相机拍摄的照片。
GPUImage 与 CocoaPod 一起安装:
platform :ios, '7.0'
pod 'GPUImage'
那是因为您没有保留 GPUImageStillCamera。您在 -initializeCamera
方法中将其创建为本地实例而不是保留它,因此它将在 -initializeCamera
完成的瞬间被释放,从而导致崩溃或其他未定义的行为。
您需要将此作为 属性 或 -initializeCamera
所在的 class 上的实例变量,或其他一些外部强引用。
此代码在执行后约 1 秒崩溃 (iOS7) :
-(void)initializeCamera
{
GPUImageStillCamera *stillCamera=[[GPUImageStillCamera alloc]initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
stillCamera.outputImageOrientation=UIInterfaceOrientationPortrait;
GPUImageView *image=[[GPUImageView alloc]initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];
GPUImageGrayscaleFilter *filter=[[GPUImageGrayscaleFilter alloc]init];
[self.view addSubview:image];
[stillCamera addTarget:filter];
[filter addTarget:image];
[stillCamera startCameraCapture];
}
如果在崩溃之前有任何帮助,会显示相机拍摄的照片。
GPUImage 与 CocoaPod 一起安装:
platform :ios, '7.0'
pod 'GPUImage'
那是因为您没有保留 GPUImageStillCamera。您在 -initializeCamera
方法中将其创建为本地实例而不是保留它,因此它将在 -initializeCamera
完成的瞬间被释放,从而导致崩溃或其他未定义的行为。
您需要将此作为 属性 或 -initializeCamera
所在的 class 上的实例变量,或其他一些外部强引用。