Swift中通过编程方式调用segue时发生sigabrt错误

4

我刚开始学习iOS开发,目前正在尝试在选择UITableViewController中的单元格后以编程方式调用转场操作。尽管我已经在故事板中创建了转场并为其分配了标识符,但我仍然在重写的didSelectRowAtIndexPath方法的performSegueWithIdentifier方法调用处收到一个sigabrt错误。非常感谢您的帮助。

override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) 
{
    self.performSegueWithIdentifier("toExerciseInfo", sender: self)
}

你是否将segue连接到特定的单元格或整个视图控制器?此外,“sigabrt”并不是很有用...您能否将完整的错误输出给控制台? - cph2117
整个视图控制器。这是我从控制台中恢复的最有用的信息:由于未捕获的异常“NSUnknownKeyException”,原因:“[<LiftMate.ExerciseInfoViewController 0x7fd931f80800> setValue:forUndefinedKey:]:此类不符合键值编码-compliant for the key RepEntr。”终止应用程序。 以NSException类型终止未捕获的异常 调用abort() - hmw1015
1
再看一下,有些东西告诉我这与目标视图控制器有关,而不是转场。 - hmw1015
它在Storyboard中吗? - cph2117
好的,我找到问题了。原来视图控制器引用了存储在项目目录外的旧版本类,因此它从那里和项目内的类获取了冲突的数据。感谢您的所有帮助,非常感激。 - hmw1015
显示剩余2条评论
2个回答

3

我知道这是一个旧帖子,但它出现在谷歌搜索的顶部,我通过阅读评论解决了我的问题。为了回报社区...

当你的storyboard与视图控制器之间的连接不好时,就会出现这个问题。在我的情况下,我将一个按钮连接到了一个插座,然后删除了插座,留下了一个悬空的连接。我很容易通过在storyboard中ctrl+点击视图,检查列出的连接,然后删除无效的连接来修复它。我相信还有其他方法可以解决错误,但这对我有效。


-1

这可能会在某一天帮助到某个人。

确保在主线程上调用segue,否则它会崩溃(SIGABRT):

dispatch_async(dispatch_get_main_queue(), ^{
                [self performSegueWithIdentifier:@"customplayer" sender:self];
            });

3
这个问题是关于 Swift 的,不是关于 Objective-C 的。 - JAL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接