所以我在主应用程序(objective-c)中将布尔值保存为userdefaults,然后在swift扩展中读取值(通过group)。如果我按如下方式读取该值,它将起作用:
if let isKey = userDefaults.object(forKey: Constants.GroupShares.isKey) as? Bool {
if !isKey {
// awesome
}
}
但如果我像这样读它,它将永远是错误的:
let isKey = userDefaults.bool(forKey: Constants.GroupShares.isKey)
我可以想象,快速和客观的-c布尔是完全兼容的,但这让我们怀疑我是否误解了什么?
同样有效的解决方案是太多的代码行。如果这是唯一的解决方案,我宁愿简单地使用一个对象来代替它。
最佳答案
我没有真正的答案。但你也可以在一行中这样做:
let isKey = (userDefaults.object(forKey: Constants.GroupShares.isKey) as? Bool) ?? false