2015-06-20 47 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

谢谢。我正在努力学习尽可能多的东西,但仍然无法掌握这些东西。你的解释很有帮助,我会更多地探讨这一点。 –

相关问题