我即将完成第一个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,所以会有些痛苦。我将不胜感激任何提示和技巧。谢谢

最佳答案

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

//基本测试用例

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

09-10 06:30
查看更多