Q: Возможно ли передать функцию в качестве аргумента функции в Swift 3?Как установить функцию как аргумент функции в 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")
}
Возможно ли это? Помощь очень ценится.
Вы ищете это? 'Типы функций в качестве типов параметров' в https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html – Santosh
@Santosh ваша ссылка не охватывает мой вопрос. я не ищу закрытие или возвращаемые значения –
ну. на самом деле мне нужно было закрыть ... Клянусь, я уже пробовал. не работал. попробовал это снова после ответов, работал ... мой плохой.thank youf или ваше время –