Как установить функцию в качестве аргумента функции в Swift 3
Q: Возможно ли передать функцию в качестве аргумента функции в Swift 3?
Для рефакторинга моего кода я хочу иметь глобальную функцию. В конце этой функции есть пользовательская кнопка, которая имеетaction
аргумент.
let deleteButton = MIAlertController.Button(title: "cancel",
type: .cancel,
config: getDestructiveButtonConfig(),
action: {
print("completed")
})
Что я хотел бы сделать, так это настроить глобальную функцию с функцией в качестве аргумента.
MyGlobalStuff.swift
...
func getButton(_ myFunc: func, _ title: String) {
let deleteButton = MIAlertController.Button(title: title,
type: .cancel,
config: getDestructiveButtonConfig(),
action: {
myFunc // call here the function pass by argument
})
}
ВызываетсяgetButton(..)
с переданной функцией в том же классе.
MyViewController.swift
...
getButton(myPrintFunc, "cancel")
func myPrintFunc() {
print("completed")
}
Возможно ли что-то подобное? Помощь очень ценится.