Значение типа «AVCapturePhotoSettings» не имеет члена «availablePreviewPhotoPixelFormatTypes».

@objc func launchCoreML() {
    let settings = AVCapturePhotoSettings()
    let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first
    let previewFormat = [
        kCVPixelBufferPixelFormatTypeKey as String: previewPixelType, 
        kCVPixelBufferWidthKey as String: 160, 
        kCVPixelBufferHeightKey as String: 160
    ] as [String : Any]

    settings.previewPhotoFormat = previewFormat
    cameraOutput.capturePhoto(with: settings, delegate: self)
}

У меня есть ошибка, говорящая:

Значение типа «AVCapturePhotoSettings» не имеет члена «availablePreviewPhotoPixelFormat».

Я использую бета-версию Xcode 9.


person LogicFlow    schedule 08.08.2017    source источник


Ответы (2)


В бета-версии 4 он был переименован в __availablePreviewPhotoPixelFormat. Бету 5 еще не смотрел.

person Matthijs Hollemans    schedule 08.08.2017
comment
Все еще __availablePreviewPhotoPixelFormatTypes в бета-версии 5. - person OOPer; 08.08.2017
comment
Я изо всех сил пытаюсь найти то же самое в бета-версии 5. - person Allamaprabhu; 11.08.2017
comment
Это происходит и в Xcode 9 GM. Большое спасибо. - person David; 13.09.2017
comment
Использование Xcode версии 9.0 (9A235) - не может решить эту проблему ( - person rommex; 01.10.2017
comment
правильный ответ должен быть от @eharo2. __ availablePreviewPhotoPixelFormatTypes - person zumzum; 07.10.2020

У меня возникла та же проблема после обновления до Xcode 12.0.

Кажется, что settings.availablePreviewPhotoPixelFormatTypes снова было изменено на settings.__availablePreviewPhotoPixelFormatTypes в финальном выпуске Xcode: версия 12.0 (12A7209). Пользуюсь без "переименования" уже как минимум 2 года. Спасибо @Matthijs Hollemans за помощь

РЕДАКТИРОВАТЬ: Это официальный ответ относительно этого изменения: https://developer.apple.com/forums/thread/86810?answerId=259270022#259270022

Этот код компилируется нормально.

let settings = AVCapturePhotoSettings()
guard let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first else { return }
let previewFormat = [
    kCVPixelBufferPixelFormatTypeKey as String: previewPixelType,
    kCVPixelBufferWidthKey as String: 160,
    kCVPixelBufferHeightKey as String: 160
]
settings.previewPhotoFormat = previewFormat
output.capturePhoto(with: settings, delegate: self)
person eharo2    schedule 23.09.2020