我在AppDelegate中有一个名为inScreenshotmode
的变量:
#if DEBUG
var inScreenshotMode: Bool {
return UserDefaults.standard.bool(forKey: "abc")
}
#else // Release
let inScreenshotMode = false
#endif
那么我如何优化下面的代码呢?
let totalValue = appDelegate?.inScreenshotMode == true ? basicInfo.value : configuration.value
如果我做了
let totalValue = appDelegate?.inScreenshotMode ? basicInfo.value : configuration.value
我得到错误:
可选类型“Bool?”的值没有打开包装;你是不是想用'!'或'?'?替换appDelegate?.inScreenshotMode“与
“(appDelegate?.inScreenshotMode)!'
什么是最好的解决方案?
最佳答案
问题是appDelegate?.inScreenshotMode
确实是可选的,这意味着它可以返回nil
。因为nil
是等价的,所以部分appDelegate?.inScreenshotMode == true
将始终返回true
或false
。但单独使用appDelegate?.inScreenshotMode
可以返回true
、false
或nil
。
关于swift - 代码清理Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49295163/