无法推断通用参数“元素”?

时间:2018-08-15 06:14:24

标签: rx-swift

“无法推断出通用参数'元素'”-当我写保护语句时出现此错误-保护语句内的内容导致无法推断元素的错误。

static func makeTokenForCard(with cardinfo: CardInfo) -> Single<String> {
        return Single.create { single in
            guard let ck = try CheckoutKit.getInstance("pk_123456789876543234567, env: Environment.SANDBOX, debug: true) else {
                let descr = "Unexpectedly Checkout got invalid private key. You may need to update the app."
                single(.error(NSError.recreate(error: CheckoutError.invalidPK as NSError, description: descr)))
                return
            }

            single(.success("123456"))
            return Disposables.create()
        }
    }

当我删除该Guard语句时-它返回简单的String和Single中的错误。

编辑:

更多地陷入错误之后,我发现它是由于抛出错误而引起的。

open class func getInstance(_ pk: String, env: Environment, debug: Bool) throws -> CheckoutKit? {

在Simple Guard中包装好。

因此,如何在Single中调用方法时引发一些预期的错误 ?

1 个答案:

答案 0 :(得分:0)

这与RxSwift无关,但更多的是Swift和处理错误。 您问题的最简单答案是使用try?而不是try。这样可以解决问题。

您可以在https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html

上了解有关错误处理的更多信息。