2015-06-20 37 views
-1

我搜索了類似的問題,但似乎沒有人回答我的問題。我正在製作單一視圖應用程序。在類的ViewController:UIViewController的部分我有以下代碼:ViewController類型沒有會員名字

var lastToAct = 0 

var gameStarted = false 

var tempPlayer = BasePlayer() 

var positionNumber : Int = 0 

var stringPosNum : String = String(positionNumber) 

var stringFromInteger : String = "\(String(positionNumber))" 

前五個變量我沒有得到任何錯誤,但第6和第7的人,我得到的ViewController類型「沒有一個名爲成員」 positionNumber最後2個變量。我不知道這是爲什麼。

+0

嗯,這似乎是正確的,你可以發佈錯誤或其他課程的屏幕截圖? – ranunez

回答

0
var stringPosNum : String = String(positionNumber) 

的問題是,這是一個存儲的實例變量,其默認值取決於另一實例變量的值。你不能那樣做,因爲在實例化時,當應用默認值時,有其他實例變量,因爲沒有實例 - 實例正是我們正在創建的中間。

一個解決方案:將lazy放在聲明的前面。另一種解決方案:如果此變量始終與其他實例變量具有此關係,請將其作爲計算變量而不是存儲變量。

+0

欲瞭解更多信息,請參閱我的書:http://www.apeth.com/swiftBook/ch04.html#_properties – matt

+0

謝謝。我正在努力學習儘可能多的東西,但仍然無法掌握這些東西。你的解釋很有幫助,我會更多地探討這一點。 –

相關問題