Swift SpriteKit println 崩溃
Swift SpriteKit println crash
我的第一个 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
}
}
现在 Swift 2+ 似乎已经解决了这个问题。
我的第一个 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
}
}
现在 Swift 2+ 似乎已经解决了这个问题。