我试图传递一个尾随闭包参数,如下所示(代码在没有此函数的情况下工作):
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!");
}
}
但是,构建失败并显示以下消息:
Command / Applications / Xcode6- Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift失败,退出代码为254
有没有人能够洞察我做错了什么?提前谢谢。
编辑:如果实现为非尾随闭包或作为参数传递的单独函数,此代码仍会崩溃。
答案 0 :(得分:0)
将Xcode从beta 1升级到beta 2后,我也遇到了这个错误。显然,闭包定义有所改变。尝试使用Void而不是()。所以你的代码是:
PNObservationCenter.defaultCenter()。addClientConnectionStateObserver(self){ (origin:String!,connected:Bool!,错误:PNError!) - >无效 if(connected){ println(“OBSERVER:成功连接!”); } else if(!connected || error){ println(“OBSERVER:(error.localizedDescription),Connection Failed!”); } }
答案 1 :(得分:0)
看起来闭包args是错误的
(origin: String!, connected: Bool!, error: PNError!) in
连接的参数应该是Bool类型,而不是显式解包的可选Bool。
(origin: String!, connected: Bool, error: PNError!) in
编者应该投诉。你应该发布到雷达。