ios - 无法将类型 'MyAppName.ProfileController' 的值转换为 'MyAppName.SelectController'

标签 ios swift

我有一个带有 3 个按钮和一个步进器的 viewController

import UIKit
import AVFoundation

class HomeController: UIViewController {
    var steppers : UIStepper?

    static var globalLimit: Int = 0

    @IBOutlet weak var hourLabel: UILabel!
    @IBOutlet weak var stepper: UIStepper!

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let vc : SelectController = (segue.destination as? SelectController)! {
            vc.limit = Int(stepper.value)
            HomeController.globalLimit = Int(stepper.value)
        }
        if let np = segue.destination as? CourseController {
            np.numberPlaces = Int(stepper.value)
        }
    }

我的应用程序在这里崩溃了:

if let vc : SelectController = (segue.destination as? SelectController)!

错误:

Could not cast value of type 'MyAppName.ProfileController' to 'MyAppName.SelectController'

之后,当我按下一个不是 SelectTapped 按钮的按钮时(在本例中我按下了配置文件按钮)。问题的原因是什么?我该如何解决?我预计有必要使用static var globalLimit

最佳答案

您正在强制转换并会产生错误。更改方法如下:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if let vc = segue.destination as? SelectController {
        vc.limit = Int(stepper.value)
        HomeController.globalLimit = Int(stepper.value)
    }
    if let np = segue.destination as? CourseController {
        np.numberPlaces = Int(stepper.value)
    }

}

关于ios - 无法将类型 'MyAppName.ProfileController' 的值转换为 'MyAppName.SelectController',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978121/

相关文章:

iphone - 雅虎天气 API 的 XML 解析器问题

ios - 推送通话统计失败,状态码: 403 | ERROR TCMetricsPublisher | Twilio

ios - Argo - 解码方法中的箭头括号是什么意思?

ios - Google plus 与 Swift 中的 CocoaPods

ios - 从函数返回之前等待 Firebase 加载

ios - 从 DateFormatter 得到错误的输出

swift - 展开 node.name.last() 时发现 nil

ios - 消除项目中的错误

ios - 在 iOS 10.3 及更高版本中,是否可以设置备用图标名称并将其用于应用程序包/二进制文件之外的图像?

ios - 调度组崩溃,因为异步函数执行多次