GPUImage简单代码在执行时崩溃

时间:2015-06-02 15:48:45

标签: ios gpuimage

此代码在执行后大约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'

1 个答案:

答案 0 :(得分:1)

那是因为你没有保留你的GPUImageStillCamera。您正在将其创建为-initializeCamera方法中的本地实例,而不是保留它,因此它将在-initializeCamera完成的瞬间被释放,从而导致崩溃或其他未定义的行为。

您需要将此作为-initializeCamera所在类的属性或实例变量或其他一些外部强引用保留。