无法将表达式的type()转换为Int - Swift类型

时间:2015-01-05 02:14:58

标签: ios swift segue

我是swift和iOS开发的新手。我正在学习如何通过多个视图控制器传递数据。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "mySegue") {
        var destinationViewController = segue.destinationViewController as FirstQuestionViewController
        destinationViewController.correctAnswerNumber = correctAnswerLabel.text
    }
}

我知道我无法将其转换为Int,但我将如何解决此错误?

在琐事游戏中,我希望有一个摘要页面,上面写着“你表现得很好”或“在下一场比赛前刷你的琐事”取决于他们的表现如何。我试图通过6个视图控制器将correctAnswerNumber变量传递给游戏摘要页面。

问题

  1. 如何解决此错误?

  2. 有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

回答问题1

您正在将字符串传递给整数变量。你需要改变:

destinationViewController.correctAnswerNumber = correctAnswerLabel.text

let answerNumber : Int?                       = correctAnswerLabel.text.toInt()
destinationViewController.correctAnswerNumber = answerNumber!

回答问题2

如果您需要将变量传递给六个ViewControllers,最好使用公共共享存储。 我的意思是使用Singleton或NSUserDefaults将是一个好主意,而不是像这样传递给六个不同的ViewController。