没有意义错误的快速尾随关闭失败

时间:2014-06-26 23:42:27

标签: closures swift

我试图传递一个尾随闭包参数,如下所示(代码在没有此函数的情况下工作):

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

有没有人能够洞察我做错了什么?提前谢谢。

编辑:如果实现为非尾随闭包或作为参数传递的单独函数,此代码仍会崩溃。

2 个答案:

答案 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

编者应该投诉。你应该发布到雷达。