2014-11-10 12 views
5

Sto utilizzando un normale UIImagePickerController per acquisire foto utilizzando la fotocamera del dispositivo. In seguito è il codice che sto usando per creare l'UIImagePickerController,iOS 8 UIImagePickerController che si arresta su Zoom

self.imagePickerController = [[UIImagePickerController alloc] init]; 
self.imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext; 
self.imagePickerController.allowsEditing = NO; 
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
self.imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; 
self.imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
self.imagePickerController.delegate = self; 

e seguenti è il codice che sto usando per visualizzare l'UIImagePickerController

[self presentViewController:self.imagePickerController animated:YES completion:nil]; 

Ora, quando l'UIImagePickerController viene presentato, se ho un ingrandimento per catturare e tornare al mio controller di visualizzazione, l'app si arresta in modo irregolare con BAD_ACCESS. Dopo aver modificato lo schema e un po 'di debug, vedo il seguente errore,

- [PLImagePickerCameraView didHideZoomSlider:]: messaggio inviato ad esempio deallocato 0x140109400

Sembra che il delegato scorrimento dello zoom viene chiamato su un istanza non allocata. Qualcun altro ha osservato questo comportamento? Sto usando lavorare su iOS 8.1 e testarlo su iPhone 5S. La ricerca di PLImagePickerCameraView non produce molto. Qualsiasi analisi sarebbe davvero utile prima che decida di andare con Picker personalizzato.

+0

possibile duplicato di [Come scoprire che cosa causa un errore didHideZoomSlider su IOS 8?] (Http://stackoverflow.com/questions/26844432/how-to-find-out-what-causes-a-didhidezoomslider -error-on-ios-8) – RyanJM

+1

@Priyank - Come hai risolto il problema? –

+0

L'aggiunta di ritardo è l'unica soluzione fattibile per ora sembra. Non voglio sviluppare la mia funzionalità personalizzata della fotocamera. – Priyank

risposta

0

Ho riscontrato l'arresto dello zoom UIImagePickerController. L'aggiunta di un ritardo ha risolto la maggior parte, ma non la totalità, degli arresti anomali.

La causa principale è il controller che tenta di richiamare un delegato dopo che il delegato è stato deallocato. Ho finito per implementare una sottoclasse UIImagePickerController per rimuovere il delegato della vista slider.

È possibile trovare alcuni codice di esempio che ho postato su un similar question.

Problemi correlati