В настоящее время я использую SwiftyStoreKit для покупок в приложении, и функция, которую я использую, чтобы попытаться получить такую информацию, как цена и описание продукта, имеет обработчик завершения, и я новичок в использовании обработчиков завершения и прочитал о@escape, если я хочу вернуть строку или оставить значение незаполненным.Мой код функции выглядит следующим образом:
func getPrice(product: IAPProducts, completion: @escaping (String) -> Void) {
var priceString = ""
SwiftyStoreKit.retrieveProductsInfo(["Grant.Marco.1000Coins"]) { result in
if let product = result.retrievedProducts.first {
priceString = product.localizedPrice!
print("Product: \(product.localizedDescription), price: \(priceString)")
}
else if let invalidProductId = result.invalidProductIDs.first {
print("Invalid product identifier: \(invalidProductId)")
}
else {
print("Error: \(String(describing: result.error))")
}
}
completion(priceString)
}
Проблема, с которой я столкнулся сейчас, заключается в том, что когда я хочу отобразить эту цену в тексте метки, он запрашивает информацию о завершении
Что мне делать?положено для этого?