致命错误:在swift中展开可选值时意外发现nil(SKProduct)

时间:2015-03-07 16:30:44

标签: xcode swift error-handling fatal-error skproduct

import UIKit
import SpriteKit
import StoreKit

extension SKProduct {
func localizedPrice() -> String {
    let formatter = NSNumberFormatter()
    formatter.numberStyle = .CurrencyStyle
    formatter.locale = self.priceLocale
    return formatter.stringFromNumber(self.price)!
}
}


class BuyCoin: SKScene {

var coin200a = SKProduct()

override func didMoveToView(view: SKView) {
NSLog("The price of this product is \(coin200a.localizedPrice())")
}
}

我做错了什么? PS:我正在尝试获取应用内购买产品的本地价格。

1 个答案:

答案 0 :(得分:1)

来自price的{​​{3}} SKProduct可能是nil,以防SKProduct未正确配置。

var price: NSDecimalNumber! { get } // suppose crash happens here

API要求用户使用所有正确的值配置SKProduct,否则当您尝试展开实际为price的{​​{1}}

时,它会崩溃

进行测试:

我会写一些类似的东西:

nil