Swift SpriteKit println崩溃

时间:2015-06-07 21:07:40

标签: swift ios8

我即将完成我的第一个SpriteKit项目,所以我一直在阅读隐藏所有println()语句以便发布的最佳方法。我发现的最佳方式如此处所述(Remove println() for release version iOS Swift)。

所以基本上我已经在全球范围内设置了我自己的自定义println函数,就像这样

     func println(object: Any) {
Swift.println(object)
}

我没有使用DEBUG Flag自动执行此操作,现在我只是评论第二行。它按预期工作,但我意识到它导致我的IAP出现一些问题,特别是它在这段代码中崩溃(并且在其他一些地方也会正常崩溃)。

     func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
    /* Payments */

    println("ADD PAYMENT")

    for transaction:AnyObject in transactions {
        var trans = transaction as! SKPaymentTransaction
        println(trans.error) //CRASH IS HERE

一旦我删除了这个全局println函数,它就不会崩溃了。有关为什么会发生这种情况的建议,或者是否有其他方法可以阻止所有printlns。显然我现在可以手动完成它,但是因为我喜欢我的printlns所以会有点痛苦。我会很感激任何提示和技巧。谢谢

2 个答案:

答案 0 :(得分:0)

以下是您可以使用的格式重新格式化的代码:

//基本测试用例

    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
        }
    }

答案 1 :(得分:0)

现在用Swift 2 +解决了这个问题。