【发布时间】:2020-04-20 04:52:45
【问题描述】:
我正在尝试将一个值从一个视图控制器传递到另一个 Int 类型的控制器。
这是我调用 sugue 的方式:
if questionNumber + 1 == quizBrain.quiz.count{
self.performSegue(withIdentifier: "goToScore", sender: self)
}
我的prepare 函数是:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToScore" {
let destinationVC = segue.destination as! ResultViewController
destinationVC.finalScore = quizBrain.getScore()
}
}
这是我的目标视图类:
import UIKit
class ResultViewController: UIViewController {
var finalScore = Int?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
quizBrain.getScore() 获取Int 类型的值。我试图传递这个值并在var finalScore 的另一个视图中捕获它。
我得到的错误是:
Cannot assign value of type 'Int' to type 'Int?.Type'
我不确定这特别意味着什么,我是 Swift 新手,无法找到与 Int?.Type 类型类似的东西。如果我尝试在不同的项目中传递String,我也会遇到类似的问题。
【问题讨论】:
-
将
=替换为:。您将声明类型而不是分配默认值。