2015-03-07 2 views
0
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: Я пытаюсь получить местную цену продукта для покупки в приложении.Неустранимая ошибка: неожиданно найден nil при развертывании Опциональное значение в swift (SKProduct)

ответ

1

От DOCSprice из SKProduct может быть nil в случае, если SKProduct не был настроен должным образом.

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

API требует от пользователя для настройки SKProduct со всеми соответствующими значениями в противном случае он будет падать при попытке разворачивать price, что на самом деле nil


Для тестирования:

Я бы напишите примерно так:

if self.price != nil{ // we don't unwrap price (fetch optional) 
    return formatter.stringFromNumber(self.price!)! 
} 
else{ 
    return "" 
} 
+0

Но я установил цену покупки в приложении с идентификатором продукта «coin200a» в Tier 1 (0,99 usd), поэтому он не может быть nil ?? – sdd

+0

на серию ведьм вы получили ошибку? –

+0

Я пробовал, он продолжает возвращаться «» и нет цены .. что я делаю неправильно? – sdd

 Смежные вопросы

  • Нет связанных вопросов^_^