ios - 这是在 Swift 中检查选项的最简洁的方法吗
问题描述
我整个早上都在尝试研究 Swift 中的选项,我知道有很多堆栈溢出帖子,但似乎没有一个能正确地澄清这一点。
对于以下代码,这是验证可选项的最简洁方法吗?
let overlays:String = "overlays=" + self.preferences.string(forKey: "overlays")! == nil ? "" : self.preferences.string(forKey: "overlays")!
请注意,我似乎可以这样做
if( self.preferences.string(forKey:="overlays" != nil) {
//do something
}
然而,在我看来,这不太简洁和可读。
编辑:事实证明,这甚至不能正确处理 nil ,因为我得到了
“线程 1:致命错误:在展开可选值时意外发现 nil”
那么您能否提供最简洁的工作方法以仅包含存在的字符串
解决方案
你所做的是强制解包。您必须使用 if let 或 guard let 进行可选处理。
if let a = self.preferences.string(forKey: "overlays"), let b = self.preferences.string(forKey: "overlays") {
let overlays:String = "overlays=\(a)\(b)" +
}
推荐阅读
- android - 如何启用选项以在卸载提示时保留应用程序的数据?
- database - 在哪里可以找到我尝试使用 Hibernate 访问的数据库?
- python - 启动 Juypter Lab 的问题
- python - LabelEncoding 多个分类列
- python - 在 tkinter 文本小部件上显示 2d 列表
- python - Docker for django 开发自动更新
- c# - 有没有办法使用 aws 服务 api 从外部删除 aws EC2 实例 Windows 服务器文件夹和日志文件
- swift - SceneKit Swift - 使用文件中的 HDR 环境光照贴图
- android - 如何通过从 /asset/location 读取 Json 文件来制作动态页面
- django - 我看不懂这段代码也不知道怎么用?