我有一個 StorageManager.swift 單例類,它是一個用于管理 FireBase 存盤的類和其中的一個函式:
public func downloadURL(for path: String, completion: @escaping (Result<String, Error>) -> Void)
{
let reference = storage.child(path)
reference.downloadURL(completion: {url, error in
guard let url = url, error == nil else
{
completion(.failure(StorageErrors.failedToGetDownload))
return
}
completion(.success(url))
})
}
編譯器給出如下錯誤:“無法將 'URL' 型別的值轉換為預期的引數型別 'String'”
通過使用這個公共函式,我想下載另一個類中的影像。這是代碼:
StorageManager.shared.downloadURL(for: path, completion: {[weak self] result in
switch result
{
case .success(let url):
self?.downloadImage(imageView: imageView, url: url)
case .failure(let error):
print("error when fetching url download\(error)")
}
})
在這方面的錯誤是:“無法將'String'型別的值轉換為預期的引數型別'URL'”
我試著像這樣發送它:
completion(.success(url.absoluteString))
并再次將其轉換為 URL:
self?.downloadImage(imageView: imageView, url: url as! URL)
但失敗了。如何正確傳遞 URL?
uj5u.com熱心網友回復:
您的downloadURL()函式宣告結果是一個字串:
將其更改為回傳帶有 URL 的 Result:
public func downloadURL(for path: String, completion: @escaping (Result<URL, Error>) -> Void)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468559.html
標籤:迅速 火力基地 firebase-存储
