[英]Closure default initializer missing - swift closure variable declaration?
我在viewController類之外聲明了閉包,我在viewController類中創建了該閉包的一個變量,但它顯示了此閉包缺少的默認初始值設定項的錯誤。
我理解變量和常量聲明的結果和默認初始化必須在聲明時分配。 但我無法理解我的閉包的默認初始化是什么,我嘗試了一些技巧來解決它,但沒有解決。
這是我的封閉聲明
typealias completionBlock = (String) -> ()
這是我關閉的變量聲明,它提示初始化它。
class ViewController: UIViewController {
var completionHandler: completionBlock = // What could be the default initializer to this closure
override func viewDidLoad() {
super.viewDidLoad()
}
}
每當我獲得傳遞所需的值時,我想實現調用此塊,與objective-c external completionBlock聲明相同。
你有3個選項
默認屬性:
var completionHandler : completionBlock = { _ in }
隱式解包可選 - 只有在100%確定在調用completionHandler
之前設置了值時才執行此操作:
var completionHandler: completionBlock!
“常規”可選
var completionHandler: completionBlock? // later callable via completionHandler?("hi")
我認為它應該是這樣的?
var completionHandler: completionBlock = { stringValue in
// but your code here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.