所以我在主应用程序(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

10-08 08:07