我一直在将我的项目代码迁移到Swift 4.0。class ViewController: UIViewController var completionClosure: ((Void)->(Void))?print("This is a closure.") }上面的代码在Swift 3.2中运行良好。<em
我注意到,在SWIFT2.2中,用@noescape标记为非转义的闭包不需要显式的self。在Swift 3中,默认情况下所有闭包都是非转义的,如果您想让它们能够转义,现在需要用@escaping标记它们。默认情况下,Swift 3中的所有闭包都是不可转义的,为什么它们需要显式的self?final class SomeViewControlle