【问题标题】:Initializing class issue using multiple ViewControllers (Swift)使用多个 ViewControllers (Swift) 初始化类问题
【发布时间】:2015-05-19 01:40:41
【问题描述】:

我在我的 XCode 项目中使用两个视图控制器。我将一个变量从第一个 View Controller 传递到第二个。而且我不断收到这个 Swift Complier Error: "Class SecondViewController has no initializers" Fix-it > Stored property 'XScore' without initial value 防止合成初始化器

这就是我在 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

我已经尝试了许多不同的方法来初始化这个属性,即使它对我来说似乎是正确的。

提前致谢。

【问题讨论】:

  • 您将Segue.destinationViewController 转换为SecondViewController,但您的“第二个视图控制器”被称为ShopViewController
  • 你能告诉我们Score是如何创建的吗?
  • Score 是一个双变量,从 0.00 开始,每次我按下按钮时,它都会加 1。(Score += 1.00)
  • 你确定ScoreDouble吗?您不能在 Double afaik 上使用 ++
  • 这不是问题,即使我删除它问题仍然存在

标签: ios iphone xcode swift uiviewcontroller


【解决方案1】:

你有几个问题。正如 Gabe 指出的那样,您将目标转换为 SecondViewController 类型,但显示的是不同类 ShopViewController 的代码。

您需要在SecondViewController 中向我们展示XScore 的声明。

如果它被定义(在 SecondViewController 中)为

var XScore:Double 

然后改成

var XScore:Double  = 0

var XScore:Double? = nil 

(允许 nil 值)

【讨论】:

  • “shop”是一个打字错误,我刚刚编辑了它。你能不能再检查一下,我看你有很多经验。谢谢。我什至删除了变量,但仍然出现错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多