Тип функции должен быть записан в следующем синтаксисе:
(
ArgumentList )
throws
->
ResultType
(Упрощенно, вы можете найти полное описание в ссылке выше.)
Ключевое слово throws
является необязательным согласно вашему требованию, но ->
ResultType требуется, даже если ResultType равен Void
.
И ArgumentList не может иметь метки параметров, необходимо использовать _
в качестве метки параметра, когда вы хотите показать имена параметров для удобства чтения.
Итак, ваш process(_:)
должен выглядеть примерно так:
func process(_ processor: ((_ sampleBuffer: CMSampleBuffer, _ toPixelBuffer: CVPixelBuffer) throws -> Void)? = nil) {
//...
}
Или, если вы определите typealias дляТип параметра, вы можете переписать его следующим образом:
typealias ProcessorType = (_ sampleBuffer: CMSampleBuffer, _ toPixelBuffer: CVPixelBuffer) throws -> Void
func process(_ processor: ProcessorType? = nil) {
//...
}
Еще один, когда вы спрашиваете о ошибки компиляции , настоятельно рекомендуется показать полное сообщение об ошибке.
Вы можете найти копируемый текст с помощью Навигатора отчетов на панели Навигатора (вЛевая сторона Xcode).