PrintBlock
- псевдоним для закрытия.Вы не можете просто создать экземпляр, как класс или структуру.Вам необходимо присвоить замыкание (или функцию) свойству.
Код Swift будет выглядеть следующим образом:
typealias PrintBlock = (_ printer: HLPrinter?) -> Void
class ShoppingViewController: UIViewController {
var printBlock: PrintBlock?
func getPrinter() -> HLPrinter {
return somePrinter
}
func someFunction() {
if let printBlock = printBlock {
let printer = getPrinter()
printBlock(printer)
}
}
}
Код вызова будет выглядеть примерно так:
let vc = ShoppingViewController()
vc.printBlock = { (printer) in
// do something with printer
}
Или, если у вас есть функция:
func someFunction(_ printer: HLPrinter) {
}
Вы можете назначить следующее:
vc.printBlock = someFunction
Здесь есть несколько предположений, основанных на частичной информации, предоставленной вами в вашем вопросе.