2016-11-12 33 views
-1

我有一個名爲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

是我如何使結構的實例不正確?

+2

你不要讓一個實例在所有的,你只聲明'data'爲隱式unwrapped可選,即'nil'。 – vadian

+0

隱含解包的期權再次觸發。我想知道爲什麼每個人都建議避開它們。 /秒 – Alexander

回答

1

var data: AwardData!聲明瞭一個隱式解開的Optional變量。這幾乎就像你寫了var data: AwardData?。最後的!使得它隱式解開,這基本上意味着編譯器不會像使用正常(非可選)變量一樣使用它。

真正的問題是,您還沒有初始化您的data變量。你只聲明它的類型,但沒有創建實際的結構。這是零,但你試圖給它的值分配title

你可以這樣做,而不是:

var data = AwardData() 

,然後設置標題沒有問題:

data.title = "Roomie" 
相關問題