[英]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
您還可以try
從Result
中獲取值,這會在發生錯誤時throw
:
let data = try result.get()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.