swift - 在展开可选值时遇到 nil 问题
问题描述
我正在尝试从 firebase 中检索 postImageUrl,但由于某种原因,我在使用 postImageUrl 解包 nil 时收到错误消息。如何使此代码正常工作,以便我可以从 firebase 检索图像 url 而不会导致崩溃?
解决方案
通常,您应该避免使用!
force-unwrap 运算符,除非您可以 100% 证明该值永远不会是nil
,这应该是极少数情况下(通常在加载应用程序包中包含的文件时)。这显然不是这里的情况,因为该值为nil,因此您应该使用if let
或guard let
解包该值,处理它的情况nil
,或者您可以使用??
运算符提供默认值,如下所示:
doSomethingWith(foo ?? "this string gets passed if foo is nil")
根据您的对象应该做什么,Post
它也可能实际上适合包含nil
. imageURL
在这种情况下,您可能只想通过在其类型的末尾imageURL
添加一个来将其属性声明为可选:?
struct Post: Codable {
...
let imageURL: URL? // or String? if that's what it is
...
}
在这种情况下,您将在imageURL
稍后使用该属性时打开该属性。
推荐阅读
- c++ - CLion 不索引任何外部包含路径
- node.js - 最后一个 then 函数被多次调用
- mysql - Mysql skip-grant-tables 在密码更改后给出拒绝访问消息
- java - Java Spring:使用多个参数发出 POST 请求
- c++ - 如何查找espeak是否结束了演讲?
- javascript - 如何固定左侧部分和滚动右侧部分,一旦到达末尾,然后设置相对位置
- python - python中的简单透明代理——代理http请求
- javascript - 将模态显示为普通 div - Reactstrap
- android - 在视图(和子视图)完成加载后运行一个函数
- php - 如何在 Wordpress 中发送之前更改文本 - CF7