Swift SpriteKit println碰撞

Swift SpriteKit println碰撞,swift,ios8,Swift,Ios8,我即将完成我的第一个SpriteKit项目,所以我一直在阅读隐藏所有println()语句以供发布的最佳方法。我找到的最佳方法如下所述() 基本上,我在全局范围内设置了自己的定制println函数,如下所示 func println(object: Any) { Swift.println(object) } 我没有使用调试标志来自动完成它,现在我只注释掉第二行。它按预期工作,但我意识到它给我的IAP带来了一些问题,特别是在这段代码中它崩溃了(在其他一些地方也会崩溃) 一旦我删除这个

我即将完成我的第一个SpriteKit项目,所以我一直在阅读隐藏所有println()语句以供发布的最佳方法。我找到的最佳方法如下所述()

基本上,我在全局范围内设置了自己的定制println函数,如下所示

     func println(object: Any) {
Swift.println(object)
}
我没有使用调试标志来自动完成它,现在我只注释掉第二行。它按预期工作,但我意识到它给我的IAP带来了一些问题,特别是在这段代码中它崩溃了(在其他一些地方也会崩溃)


一旦我删除这个全局println函数,它就不会崩溃了。任何关于发生这种情况的原因或是否有其他方法停止所有PrintLN的建议。显然,我现在可以手动操作,但这会有点痛苦,因为我喜欢打印。如果有任何提示和技巧,我将不胜感激。谢谢

以下是您可以很好地重新格式化的代码:

//基本测试用例

    var transactions: [AnyObject] = [SKPaymentTransaction](count: 2, repeatedValue: SKPaymentTransaction() )
    transactions[1] = NSNull()
//然后是功能的肉

    for transaction in transactions {
        if let trans = transaction as? SKPaymentTransaction {
            println(trans.error) // call Swift.println
        }
    }

现在使用Swift 2+似乎已经解决了这一问题。

你能传递崩溃转储或简单的堆栈跟踪吗?控制台只是给了我坏的EXC,在展开时发现为零。当你有这个函数时,你代码中的所有println语句都会调用它。基本上,我对编码太陌生了,根本不知道这意味着什么“Swift的0函数签名专门化”。(fatalErrorMessage(Swift.StaticString,Swift.StaticString,Swift.UInt)->(闭包#2)这就是你要找的吗?这个错误是当它期望一个非零而得到一个时。例如:“变量对象:任何对象?=无Swift.println(对象!);”。我看到你编辑了代码。您现在是否正在传递一个常量字符串,但它仍在崩溃?在看到此错误的工具栏中,只需单击它,您将看到一个带有stacktrace的弹出菜单。选择前面的一个,以便查看代码中崩溃的位置。然后看看这些变量。这里有一个链接告诉你我在说什么:我明天会试试这个,今天的代码太多了哈哈。我会让你知道它是否有效。再次感谢你,你真是太棒了
    for transaction in transactions {
        if let trans = transaction as? SKPaymentTransaction {
            println(trans.error) // call Swift.println
        }
    }