我即将完成第一个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
}
}