【发布时间】:2022-01-15 06:30:41
【问题描述】:
我在使用核心数据实体和 SwiftUI 时遇到问题。在我看来,一些属性在它们应该是非可选的时候是非可选的,我不明白为什么。
这是我的Entry核心数据实体:
这是我尝试在视图中使用它的方式:
if entry.text != nil {
Text(entry.text!)
}
if entry.number != nil {
Text("\(entry.number, specifier: "%.0f")")
}
if entry.boolean != nil {
Text(entry.boolean ? "True" : "False")
}
我的问题是对于entry.number 和entry.boolean,swift 抱怨Comparing non-optional value of type 'Double' to 'nil' always returns true。
entry.text 不会发生这种情况。我已经通过运行print(entry) 和number 和boolean 来检查这些值是nil 在持久存储中。
我了解核心数据选项和 swift 选项是不同的。但是,在这种情况下,所有 Entry 属性不应该都是可选的吗?为什么 SwiftUI 抱怨他们不是?
【问题讨论】:
-
如果你打算这样使用它们,你真的应该使用
if let来解开你的选项。 -
@Andrew 这是一个很棒的提示,非常感谢!
标签: ios swift core-data swiftui