【发布时间】:2023-03-06 07:27:02
【问题描述】:
我想在显示实际页面之前加载SKProducts。但是我在创建它时遇到了一些困难。
我的想法是创建另一个加载产品的类,如下所示:
class GetIapInfo: NSObject, SKProductsRequestDelegate {
var list = [SKProduct]()
var p = SKProduct()
let audio = "com.xxx";
let video = "com.xxx"
let complete = "com.xxx"
override init() {
super.init()
if SKPaymentQueue.canMakePayments() {
print("starting IAPS")
let productIdentifiers = Set([audio, vídeo, complete])
let request = SKProductsRequest(productIdentifiers: productIdentifiers)
request.delegate = self
request.start()
} else {
print("please enable IAPS")
}
}
internal func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
print("product request")
let myProduct = response.products
for product in myProduct {
print("product added from ding")
print(product.productIdentifier)
print(product.localizedTitle)
print(product.localizedDescription)
print(product.price)
}
}
}
但这仅调用init 方法,仅此而已,它不调用productsRequest 方法。这与委托有关吗?
我将如何保存将以该方法返回的产品?因为我以后需要它们。
【问题讨论】:
标签: ios swift asynchronous delegates in-app-purchase