在方法参数中隐式解包可选闭包

Implicitly unwrapped optional Closure in a method argument

SwiftHTTP 中,它的 GET 方法有以下代码:

public func GET(url: String, 
                parameters: Dictionary<String,AnyObject>?, 
                completionHandler:((HTTPResponse) -> Void)!) { ... }

通过使这个隐式解包可选,是否意味着必须提供 completionHandler?如果是这样,为什么还要费心将其设为可选?

隐式展开的可选意味着你在技术上可以传递nil,但它是否崩溃取决于代码的其余部分。在这种情况下,it appears completionHandler 为 nil 的情况得到了正确处理(因此您不必提供)。我只想说这是一个次优 API :)