Xcode关闭自动完成问题

问题描述 投票:1回答:1

以下是使用Xcode 6.4针对iOS 8.4构建的工作代码。

NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: { response, data, error in
    if error != nil {
        println("there be an error")
    } else {
        let image = UIImage(data:data)
        self.webimage.image = image
    }
})

如果我在Xcode自动完成方法签名的闭合部分时双击它,我最终会进入这个状态。

enter image description here

Xcode没有把 }) 并在结尾处增加 -> Void in.

这是Xcode 6.4中的一个错误,还是有两种不同的闭包语法?

什么时候我需要 completionHandler : { arg, arg arg in 与...相比 completionHandler : {(arg,arg,arg) -> Void in //code })

ios xcode swift xcode6
1个回答
5
投票

Xcode自动完成你的指令的方式是 "尾部闭合式"。

来自苹果文档。

如果你需要把一个闭包表达式作为函数的最终参数传递给函数,而这个闭包表达式又很长,那么把它写成尾部闭包会很有用。尾部闭包是指写在其支持的函数调用的括号之外(和之后)的闭包表达式。

如果你想了解更多关于尾部封闭的知识,请在这里向文档报告。https:/developer.apple.comlibraryiosdocumentationSwiftConceptualSwift_Programming_LanguageClosures.html。 (参见 "尾部封闭 "一节)

© www.soinside.com 2019 - 2024. All rights reserved.