我正在使用我的XCode项目中的两个视图控制器。我从第一个View Controller传递了一个变量到第二个。我一直得到这个 Swift编译器错误:“类SecondViewController没有初始化器”Fix-it>没有初始值的存储属性“XScore”会阻止合成初始化程序。
这是我在FirstViewController中传递变量的方法:
override func prepareForSegue(Segue: UIStoryboardSegue, sender: AnyObject?) {
var Destination = (Segue.destinationViewController as SecondViewController)
Destination.XScore = Score
}
这是我的第二视图控制器的一部分:
class SecondViewController: UIViewController {
@IBOutlet weak var XScoreLabel: UILabel!
var XScore:Double = 0.00
我已经尝试了很多不同的方法来初始化这个属性,即使在没有它的情况下似乎也是正确的。
提前致谢。
答案 0 :(得分:0)
你有几个问题。正如Gabe指出的那样,您将目的地转换为SecondViewController
类型,但正在显示其他类ShopViewController
的代码。
您需要在XScore
中向我们展示SecondViewController
的声明。
如果它(在SecondViewController中)被定义为
var XScore:Double
然后将其更改为
var XScore:Double = 0
或
var XScore:Double? = nil
(允许零值)