Q:Swift 3で関数引数として関数を渡すことはできますか?Swift 3で関数引数として関数を設定する方法
私のコードをリファクタリングするには、グローバル関数が必要です。この関数の最後には、action
引数を持つカスタムボタンがあります。
let deleteButton = MIAlertController.Button(title: "cancel",
type: .cancel,
config: getDestructiveButtonConfig(),
action: {
print("completed")
})
私がしたいことは、関数を引数としてグローバル関数を設定するようなものです。同じクラス内で渡された関数でgetButton(..)
によって呼び出され
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
})
}
。
MyViewController.swift
...
getButton(myPrintFunc, "cancel")
func myPrintFunc() {
print("completed")
}
可能なことはありますか?ヘルプは非常に感謝しています。あなたがそうのようにそれらを渡すことができるように
あなたはこのをお探しですか? https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.htmlの「関数型をパラメータ型として」 – Santosh
@サントシーあなたのリンクは私の質問をカバーしていません。私は閉鎖または戻り値を探していません –
。実際に私は閉鎖が必要でした...私は誓い、私は前にそれを試してみました。動作しませんでした。答えの後にもう一度試してみました。あなたやあなたの時間に感謝します –