2013-10-09 1 views
0

iOS7에서 다음을 실행할 때 내 애플리케이션이 중단됩니다. 그것의 당신은 ImagePicker 당신이 그것을이 cameralayer에 뷰의 추가 라인에 도달하는 시간으로 기억 될 것이라는 점을 보장하지 않습니다 iOS6의카메라의 IOS7 크레이크

UIImagePickerController *ImagePicker; 

@try { 
    ImagePicker = [[[UIImagePickerController alloc]init]autorelease]; 
    ImagePicker.sourceType= UIImagePickerControllerSourceTypeCamera; 
    ImagePicker.showsCameraControls = NO; 
    ImagePicker.toolbarHidden = YES; 
    ImagePicker.navigationBarHidden= YES; 
    // ImagePicker.wantsFullScreenLayout = YES; 

    ImagePicker.cameraViewTransform = CGAffineTransformScale(ImagePicker.cameraViewTransform, CAMERA_TRANSFORM, CAMERA_TRANSFORM); 
} 
@catch (NSException *exception) { 
    [ImagePicker release]; 
    ImagePicker = nil; 
} 
@finally { 

    if(ImagePicker) 
    { 
     [cameralayer addSubview:[ImagePicker view]]; 
     [cameralayer release]; 
    } 

} 
+1

충돌 발생 경로는 무엇입니까? 충돌이 발생하면 콘솔에 어떤 출력이 표시됩니까? –

+0

Addsubview에서 때때로 EXE Bad Comn 오류가 표시됩니다. – Ahsan

답변

0

에 완벽하게 잘 작동했다. 생성 직후에 autoreleaseImagePicker을 사용하지 마십시오. release 일단 당신이 그것을 그것과 그것의 전망을 사용하여 진짜로 끝내면.

+0

알겠습니다. 하지만 IOS에서 작동하는 이유는 무엇입니까? – Ahsan

+0

객체를 자동 갱신하면 '미래의 어느 시점에서'(일반적으로 실행 루프의 끝/시작 부분에서) 릴리스됩니다. 어쩌면 그 시점은 iOS7 이전에 발생했거나 다른 장치에서 실행 중일 수 있습니다. 기본적으로 코드는 작성된대로 안전하지 않으며 필요에 따라 해당 객체가 수명을 가지도록 수정해야합니다. –