覆盖 prepareForSegue 函数时 IBAction 中的线程错误

Posted

技术标签:

【中文标题】覆盖 prepareForSegue 函数时 IBAction 中的线程错误【英文标题】:Thread error in IBAction while overriding prepareForSegue function 【发布时间】:2014-09-09 17:27:40 【问题描述】:

我在IBAction 函数中遇到线程错误Thread 1: Breakpoint 1.1。代码运行没有错误,但是当我单击模拟器上的按钮时,模拟器崩溃并产生断点错误。受影响的代码是:

@IBAction override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
    if testoEsercizio.text == "Per iniziare premi la tv" 
        var viewController : SecondoSchermo = segue.destinationViewController as SecondoSchermo
        viewController.stringaponte = "SI buono"
     else 
        var viewController : SecondoSchermo = segue.destinationViewController as SecondoSchermo
        viewController.stringaponte = "NON buono"
      

【问题讨论】:

【参考方案1】:

在 Xcode 中使用⌘ + 7 打开断点编辑器。从那里您可以看到打开(由深蓝色表示)或关闭(用浅蓝色表示)的断点。我高度怀疑您的方法中设置了断点。

术语Thread 1: Breakpoint 1.1 是调试器的内部断点名称(我假设您是从绿色文本栏中读取的?)。这并不一定意味着它是一个 线程错误,它只是告诉你它在哪里停止。

您可以按^ + ⌘ + Y 继续,或转到调试菜单并选择其他选项。 ⇧ + ⌘ + Y 将打开调试区域和与调试菜单的操作相关的按钮栏。

HTH

【讨论】:

【参考方案2】:

这确实意味着您在代码中设置了断点。如果您不小心这样做了,请按 CMD+7 选择 Xcode 中的所有断点。在左侧的断点导航器中,您现在可以使用退格键选择和删除断点

【讨论】:

【参考方案3】:

您是否不小心在代码中添加了断点?如果是这样,程序将运行到该点然后停止。

检查是否有任何蓝色箭头链接到您的程序的某些部分,这些部分标记了断点。

【讨论】:

【参考方案4】:

您可以单击(深蓝色)标志,绿色消息将消失。您的代码的下一部分将可以通过模拟或其他方式访问。

【讨论】:

【参考方案5】:

要解决此问题,您应遵循此说明。

1- 转到工具栏中的产品。

2- 然后转到方案。

3- 并转到编辑方案。

4- 然后点击运行(调试)。

5- 在 Run(Debug) 中有 Arguments Passed On launch 只需点击 + 然后把这个值放在上面 (-v)

6- 关闭。

【讨论】:

【参考方案6】:

如果您遇到此问题,解决此问题的最简单方法是单击屏幕顶部工具菜单中的调试选项,然后您将找到“停用断点”选项。

【讨论】:

【参考方案7】:

解决这个问题的两个步骤:

通过转到DEBUGDEACTIVATE ALL BREAK POINT 删除断点

然后,转到Main.Storyboard,右键单击红色突出显示的区域:

检查黄色标志是否存在。如果存在,则将其删除。代码将成功运行。应用不会崩溃。

【讨论】:

以上是关于覆盖 prepareForSegue 函数时 IBAction 中的线程错误的主要内容,如果未能解决你的问题,请参考以下文章

调用 prepareForSegue 而不是 ib 按钮

无法覆盖prepareForSegue函数[重复]

Swift PrepareForSegue EXC_BREAKPOINT

在prepareForSegue的函数中搜索数据时如何获取indexPath

prepareForSegue 里面的函数不会执行

将类别添加到 UITextView 并在 UITextView 在 xib 时覆盖它的 init 函数