我有两个闭包的函数
testNetworkAvailability(reachableBlock:, unreachableBlock:)
但是当我按下回车键来自动完成闭包占位符时,第二个 unreachableBlock
将连同它一起删除变量名称并导致错误。
例如,如果我按回车键打开这个闭包占位符,它将如下所示:
testNetworkAvailability(reachableBlock: { () -> Void in
<#code#>
}) { () -> Void in
<#code#>
}
事实上,当我将此函数复制到 stackoverflow 时,这些 block 的占位符显示为 <#(() -> Void)?##() -> Void#>
.它应该如此奇怪#() -> Void#
只是,不应该吗?
这是为什么以及如何解决?
最佳答案
只要最后一个参数是闭包,Swift 就允许您省略参数名称并将其视为内联 block 。
autoreleasepool {
// ...
}
请参阅 trailing closures 上的文档.
然而,XCode 的自动完成功能是否应该更喜欢尾随闭包是一个有争议的话题。
关于ios - 为什么 func 闭包有时会在 Swift 中删除它的参数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28653875/