Я запустил ваш код, и он работал отлично - почти!Единственная проблема заключается в том, что мне пришлось добавить запись «Конфиденциальность - описание использования камеры» в Info.plist приложения.В противном случае приложение вылетает.
Как только я это сделал и запустил ваш код, я увидел изображение с камеры в реальном времени на своем устройстве.
Так почему же это не работает для вас?Давайте подумаем о некоторых возможных причинах.Вы не дали достаточно информации, чтобы знать наверняка (учитывая, что сам код работает просто отлично), но вот некоторые возможности:
У вас нет конфиденциальности - Использование камерыЗапись описания в Info.plist приложения .
Вы тестируете на симуляторе.Возможно, этот код работает только на устройстве.
В вашем интерфейсе есть что-то в перед подслоя, которое вы добавляете, когда говорите insertSublayer
.Чтобы проверить это, попробуйте сказать addSublayer
вместо этого;это сделает слой камеры самым передним слоем (помните, это только для целей тестирования).
Может быть, ваш код вообще никогда не запускается?Возможно, мы никогда не пойдем к этому контроллеру представления.Чтобы проверить эту теорию, поместите оператор print
в viewDidLoad
и посмотрите, действительно ли он печатается на консоли.
Может быть, ваш код запускается слишком рано?Чтобы проверить эту теорию, переместите все эти вызовы из viewDidLoad
в нечто более позднее, например viewDidAppear
.Помните, что это только для целей тестирования.
Надеюсь, один из них поможет вам выяснить, в чем проблема.