Приложение зависает после попытки использовать камеру в симуляторе iOS даже с обработкой захвата

Я пытаюсь добавить функциональность камеры в свое приложение в Swift 3. Поскольку в симуляторе iOS нет камеры, я написал do catch, чтобы приложение продолжало работать после того, как оно не может использовать камеру в симуляторе.

do{
    let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice)
    captureSession.addInput(captureDeviceInput)

}catch{
    print("there was an error adding camera as input:  ")
    print(error.localizedDescription)
}

возвращается ошибка "Невозможно записать". Однако это просто полностью замораживает приложение. Я что-то упустил при обработке ошибок или это неизбежный побочный эффект использования симулятора?


person I need help    schedule 09.09.2017    source источник
comment
Какой у вас код для открытия приложения Камера? Я сделал что-то подобное с телефоном и электронной почтой, и я просто использовал UIAlertController и другие соответствующие функции, чтобы показать, что код открывает другое приложение. Будет ли что-то подобное работать? (т.е. - @IBAction func действует при нажатии кнопки камеры)   -  person ProgrammingEnthusiast    schedule 09.09.2017


Ответы (1)


Это не выброшенное исключение. Вы не должны использовать AVCaptureDeviceInput в симуляторе вообще.

Используйте #if arch(x86_64), чтобы избежать присутствия какого-либо кода, связанного с камерой, при компиляции для симулятора.

person matt    schedule 09.09.2017
comment
Ну, основная часть в том, что он не работает на симуляторе, о чем я изначально спрашивал, и вы ответили, но добавили что-то дополнительное, что, как я думал, может быть неправильным. - person I need help; 10.09.2017
comment
@Ineedhelp Современные iPhone 64-битные, но их архитектура arm64, а не x86_64. Архитектура x86_64 конкретно относится к 64-разрядным машинам x86 (например, настольным компьютерам и ноутбукам). - person Lily Ballard; 15.09.2017