2015-12-27 30 views
0

如何将iAP的价格作为文本添加到按钮上?带价格层文本的iAP购买按钮

我的意思不是这样的:

upgradeButton.setTitle("19", forState: .Normal) 

但是,如果我改变的价格在iTunes Connect,它也改变了按钮。我已经试过这样的事情:

var product_id: NSString?; 
override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     product_id = "com.iia.cuz.PRO"; 

     SKPaymentQueue.defaultQueue().addTransactionObserver(self) 

     let response = SKProductsResponse() 
     let validProduct: SKProduct = response.products[0] 
     if (validProduct.productIdentifier == self.product_id) { 
      upgradeButton.setTitle(validProduct.price.description, forState: .Normal) 
     } 
    } 

当我尝试这一点,崩溃就行了: let validProduct: SKProduct = response.products[0]

我已经进口StoreKit和类添加SKProductsRequestDelegate, SKPaymentTransactionObserver

有什么建议吗?

+0

将TransactionObserver添加到ViewController的viewDidLoad是非常不实际的。考虑它取代AppDelegate –

回答

0

您需要使用SKProductsRequest

  • 相关的产品标识(S)
  • 设置delegate
  • start
  • 在委托
  • ,实现productsRequest:didReceiveResponse:初始化其将接收与标识符匹配的产品。然后您可以从产品检索价格

请注意,您应该使用货币形式的数字格式化程序(使用提供的区域设置)正确设置价格格式。请参阅price属性SKProduct的说明中的示例(仅在“Objective-C”模式下可见,但易于转换为Swift)。

+0

你有任何代码可以提供吗? –

+0

这不是一个免费的代码写入服务。如果您需要某人为您编写代码,请聘请某人这样做。上述说明应该足以让您编写相关的代码。 – jcaron

+0

你不是很有帮助。请不要打扰开始讨论,如果你不打算贡献。 K. Bye。 –