Пример SwiftyStoreKit как функции с возвратом

Этот пример кода из SwiftyStoreKit работает, но я хотел бы преобразовать его в метод, который возвращает priceString.

SwiftyStoreKit.retrieveProductsInfo([productID]) { result in
            if let product = result.retrievedProducts.first {
                let 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))")
            }
        }
    }

Когда я пытаюсь это:

func getProductsTest() -> String {
        
        SwiftyStoreKit.retrieveProductsInfo([productID]) { result in
            if let product = result.retrievedProducts.first {
                let 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))")
            }
        }
    }

Я получаю сообщение об ошибке Не удается преобразовать возвращаемое выражение типа «InAppRequest» в возвращаемый тип «String». Любая идея, как я могу вернуть значение priceString?

Спасибо


person jtapping    schedule 20.10.2020    source источник
comment
вы нашли решение для этого? ищу точно такую ​​же   -  person Fabian H.    schedule 26.02.2021
comment
да, мне пришлось вернуть результат через делегата. Я писал об этом здесь: levelup.gitconnected.com/   -  person jtapping    schedule 27.02.2021
comment
Большое спасибо! Я уже нашел это, но помогает то, что вы действительно решили это. единственное, над чем я все еще работаю, это то, что я полностью работаю в SwiftUI, поэтому я пытаюсь вернуть его в обычное текстовое поле, но оно продолжает возвращаться пустым. Возможно, у вас есть обходной путь для этого? Прямо сейчас я перехожу на IBoutlet, и следующим шагом будет взять оттуда текст и поместить его в Text() в SwiftUI. Хотелось бы услышать ваши мысли   -  person Fabian H.    schedule 01.03.2021
comment
Большая статья, кстати!   -  person Fabian H.    schedule 01.03.2021
comment
эй спасибо. Извините, я не силен в SwiftUI, только учусь.   -  person jtapping    schedule 05.03.2021