我正尝试按如下方式传递尾随闭包参数(代码在没有此功能的情况下也能正常工作):
PNObservationCenter.defaultCenter().addClientConnectionStateObserver(self) {
(origin: String!, connected: Bool!, error: PNError!) in
if (connected) {
println("OBSERVER: Successful Connection!");
} else if (!connected || error) {
println("OBSERVER: \(error.localizedDescription), Connection Failed!");
}
}
但是,构建失败并显示以下消息:
命令/Applications/Xcode6- Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift 失败,退出代码为 254
有没有人知道我做错了什么?提前致谢。
编辑:如果实现为非尾随闭包或作为作为参数传递的单独函数,此代码仍然会崩溃。
最佳答案
在将 Xcode 从 beta 1 升级到 beta 2 后,我也遇到了这个错误。显然闭包定义发生了一些变化。尝试使用 Void 而不是 ()。所以你的代码将是:
PNObservationCenter.defaultCenter().addClientConnectionStateObserver(self) { (来源:String!,连接:Bool!,错误:PNError!)-> Void in 如果(连接){ println("观察者:连接成功!"); } else if (!connected || error) { println("OBSERVER: (error.localizedDescription), 连接失败!"); } }
关于closures - 没有有意义错误的 Swift Traling 闭包失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441956/