簡體   English   中英

如何交換“結果”的類型<data> ' 到 Swift 中的數據類型</data>

[英]How can I exchange type of 'Result<Data>' to Data type in Swift

我得到了一些錯誤,但我不知道。

在此處輸入圖像描述

代碼在這里。

   func object(for key: String) -> Observable<SwiftyJSON.JSON?> {
        return Observable.create { [weak self] observer in

            self?.cache?.async.object(forKey: key) { result in
                guard let data = result else {
                    observer.onNext(nil)
                    observer.onCompleted()
                    return
                }
                Async.userInteractive {
                    var json = SwiftyJSON.JSON(data: data)

                    Async.main {
                        if let error = json.error {
                            observer.onError(error)
                        } else {
                            observer.onNext(json)
                        }
                        observer.onCompleted()
                    }
                }
            }

            return Disposables.create()
        }
    }

我用這個https://github.com/hyperoslo/Cache

如何將“結果”交換為“數據”?

Result是一個包含(成功)值或錯誤的枚舉。

因此,與任何枚舉一樣,您可以使用switch語句或if case let表示法。

if case let .success(data) = result {
   // do something with data
}
// or similarly
guard case let .success(data) = result else { return }
// do something with data

或者:

switch result {
case .success(let data):
   // do something with data
   ...
case .failure(let error):
   // do something with error

您還可以tryResult中獲取值,這會在發生錯誤時throw

let data = try result.get()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM