【问题标题】:TypeMismatch error when instantiating view controller实例化视图控制器时出现 TypeMismatch 错误
【发布时间】:2019-10-23 23:42:11
【问题描述】:

当尝试使用 instantiateViewController(withIdentifier:) 从我的情节提要中实例化视图控制器时,Xcode 会抛出此错误:

typeMismatch(Swift.Array, Swift.DecodingError.Context(codingPath: [], debugDescription: "期望解码 Array 但找到了一个字典。",底层错误: nil))

我怀疑这是在最近的 Swift 补丁之后开始发生的。回退到旧的提交也不能解决问题。我能够从同一个情节提要中实例化其他视图控制器,但特别是那个总是抛出这个错误。

我尝试重命名视图控制器的标签,从同一个故事板实例化不同的视图控制器(这很成功),并清理项目

let vc = storyBoard.instantiateViewController(withIdentifier: "map") as! ViewController
self.present(vc, animated: true, completion: nil)

【问题讨论】:

  • 你确定错误来自instantiateViewController,而不是视图控制器本身的一些代码吗?我相信您遇到的错误与Codable 有关

标签: ios swift xcode storyboard


【解决方案1】:

我发现了错误。如果其他人在尝试实例化视图控制器时出错,则实例化的类将运行其初始代码行。我假设如果它实际调用视图控制器,它会调用 viewDidLoad,但它只会初始化函数上方的所有变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2019-03-10
    • 2016-08-23
    • 2015-03-24
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多