【问题标题】:signal SIGABRT error in viewControllerviewController 中的信号 SIGABRT 错误
【发布时间】:2016-04-04 17:28:44
【问题描述】:

您好,我不擅长 Swift,遇到信号错误。我找不到任何可能导致它的东西。我真的很想完成这个应用程序,请有人帮助我。

错误视频 https://www.dropbox.com/s/xlvo22fvurivize/error.mov?dl=0

由于我只是使用选项拖动进行转场,我不确定它是否与代码相关。我是否应该在该课程中添加一些东西,也许我错过了一些东西?

Could not cast value of type 'recipeApplication.ViewController' (0x1041ff030) to 'recipeApplication.matchesPageViewController' (0x1041ff0d0).

这是错误。

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let matchesPage: matchesPageViewController = segue.destinationViewController as! matchesPageViewController

    for var i = 0, a = 0 ; i < data(0).2 ; i++ {

        if data(i).0.isSubsetOf(choosenSet) == true {
            self.myMatchedArray.insert(self.data(i).1, atIndex: a)
            a++
        }
    }

    for var i = 0 ; i < myMatchedArray.count ; i++ {
        //print(myMatchedArray[i])
        matchesPage.dataArray.append(myMatchedArray[i])
    }
}

这是我的 prepareforsegue 中的代码,但就像在视频中一样,我已将其用于另一个 viewController,因此我没有将其用于返回。就像我说的,我只是用 segue 声明了它......

任何想法都值得赞赏。谢谢

【问题讨论】:

  • 发布您的相关代码(根据错误可能是您prepareForSegue:方法中的代码)
  • 另见:raywenderlich.com/10209/my-app-crashed-now-what-part-1 了解如何调试崩溃
  • 错误似乎是说您正在将某些东西投射到不是一个matchesPageViewController 对象。而是ViewController
  • 尝试在 let matchesPage... 行之前打印 segue.destination。让我知道它是什么
  • 它给出了这个@penatheboss

标签: ios xcode swift uiviewcontroller segue


【解决方案1】:

正如 cmets 中所讨论的,在打印 segue.destination 时,您收到了 &lt;recipeApplication.ViewController: 0x7f9f1a42b670&gt;。这意味着你的 segue 的目的地是ViewController。但是,您尝试将ViewController 转换为matchesPageViewController。这就是为什么你得到你的错误。你应该检查一下。

if let matchesPage = segue.destinationViewController as? matchesPageViewController {
    //Do code
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多