-3

运行以下代码时,出现以下错误:“在展开可选值时意外发现 nil”。这是代码:

func convertBase64StringToImage (imageBase64String:String) -> UIImage {
        let imageData = Data.init(base64Encoded: imageString, options: .init(rawValue: 0))
        let image = UIImage(data: imageData)
        return image!
    }

所以要克服我使用的问题,guard let image data但我应该返回什么?我不能只使用 return 并将其留空,因为函数需要 UIimage 输出。真的很困惑在这种情况下传递哪个“默认”值来包装 nil 错误。

4

1 回答 1

2

不要返回不正确的空图像。您需要以某种方式向调用者发出转换失败的信号。您基本上有两种选择,返回 Optional (nil意味着失败)或抛出错误:

func convertBase64StringToImage (imageBase64String:String) -> UIImage?

或者

func convertBase64StringToImage (imageBase64String:String) throws -> UIImage

无论哪种方式,现在调用者都清楚地知道存在问题,并且由调用者来应对。

于 2021-11-01T13:08:52.393 回答