我有一个TableViewController,在viewDidLoad中,我正在请求所有可用的产品,然后重新加载tableview,单元格数=产品数量。
发生的事情是当我点击“购买按钮”并取消它时,它只打印一次“购买已取消”
但是当我转到其他视图控制器并再次返回此tablevc时(因为我再次打开此tableVC再次加载ViewDidLoad)正确加载了单元格。但是当我尝试购买并再次点击取消时。它打印“买取已取消”两次。
如果我转到其他视图并再次打开此vc。然后它打印三次....这继续。
这是我的viewDidLoad
if (SKPaymentQueue.canMakePayments()) {
var productIDs:NSSet = NSSet(objects: productOne, productTwo, productThree, productFour, productFive)
var productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productIDs)
productsRequest.delegate = self;
productsRequest.start();
}else{
println("can't make purchases");
}
并委托方法
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
println("add paymnet")
for transaction:AnyObject in transactions {
var trans = transaction as SKPaymentTransaction
switch trans.transactionState {
case .Purchased:
println("Purchase Successful")
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
queue.finishTransaction(trans)
break;
case .Failed:
println("Buy Cancelled")
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
queue.finishTransaction(trans)
break;
default:
println("default")
break;
}
}
}