【问题标题】:Xcode closure auto completion issueXcode关闭自动完成问题
【发布时间】:2015-07-20 07:39:40
【问题描述】:

以下是使用 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 自动完成时双击方法签名的闭包部分,我最终会处于这种状态:

Xcode 没有将}) 放在闭包的末尾,还添加了-> Void in

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

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

【问题讨论】:

标签: ios xcode swift xcode6


【解决方案1】:

Xcode 自动完成指令的方式是“尾随闭包样式”。

来自 Apple 文档:

如果您需要将闭包表达式作为 函数的最终参数和闭包表达式很长,它可以 将其写为尾随闭包会很有用。尾随 闭包是写在外面(和之后)的闭包表达式 它支持的函数调用的括号

如果您想了解更多关于尾随闭包的信息,请在此处向文档报告:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html(参见尾随闭包部分)

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多