解包时发现结构为零
Struct found nil while unwrapping
我有一个名为 AwardData
的结构,其中包含 3 个字段,一个 title : String
、一个 description : String
和 completed : 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"
我有一个名为 AwardData
的结构,其中包含 3 个字段,一个 title : String
、一个 description : String
和 completed : 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"