Xcode关闭自动完成问题

Posted

技术标签:

【中文标题】Xcode关闭自动完成问题【英文标题】:Xcode closure auto completion issue 【发布时间】: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 )

【问题讨论】:

如果可以根据您的需求进行定制,这会是一个有用的开始吗? ***.com/questions/48932152/… 【参考方案1】:

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

来自 Apple 文档:

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

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

【讨论】:

以上是关于Xcode关闭自动完成问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.1 行为 - 自动关闭选项卡?

Xcode 9 自动完成无法正常工作

Swift - Xcode 8.3 自动完成未显示

Xcode 6.1 if/else/for/switch 语句不自动完成(仅限 Swift)

XCode 没有在自动完成中提供任何有用的信息

为啥 Xcode 会为选择器添加自动完成方法?