解包时发现结构为零

Struct found nil while unwrapping

我有一个名为 AwardData 的结构,其中包含 3 个字段,一个 title : String、一个 description : Stringcompleted : Bool。我正在尝试创建其中之一的实例,然后像这样设置其数据:

var data : AwardData!

        switch awardNum
        {
        case 0:
            data.title = "Roomie"

但是我 运行 遇到了一个错误:unexpectedly found nil while unwrapping an Optional value

我如何使结构实例不正确?

var data: AwardData! 声明了一个 implicitly-unwrapped Optional 变量。就好像你写了 var data: AwardData?。最后的 ! 使其隐式展开,这基本上意味着编译器不会抱怨您像普通 (non-optional) 变量一样使用它。

真正的问题是您还没有初始化 data 变量。您只声明了它的类型,但没有创建实际的结构。它是零,但您尝试为其 title.

赋值

您可以这样做:

var data = AwardData()

然后设置标题没有问题:

data.title = "Roomie"