Swift错误:信号SIGABRT如何解决它
我只是Swift编码的初学者。 我的想法很简单,这是一个带有两个按钮的应用程序。 单击时,文本字段将更改其文本。 在Main.StoryBoard中,我添加了一个文本字段和两个按钮。 在ViewController.swift文件中。 我这样写:
import UIKit class ViewController: UIViewController { @IBOutlet weak var textfield: UITextField! @IBOutlet weak var button: UIButton! @IBOutlet weak var button2: UIButton! @IBAction func action1(_ sender: UIButton) { textfield.text="you just clicked on button1" } @IBAction func action2(_ sender: UIButton) { textfield.text="you just clicked on button2" } }
它本来应该是好的。 但是,出现错误,显示:
thread1:信号SIGABRT
在文件AppDelegate.swift行:
class AppDelegate: UIResponder, UIApplicationDelegate
我的代码出了什么问题?
我通过清理项目并重建来解决问题。
要清理项目,请转到MenuBar:Product – > Clean
然后重建只需像往常一样单击运行按钮
每当断开sockets时,都会收到SIGABRT错误。 单击故事板中的视图控制器,然后转到侧面板中的连接(箭头符号)。 看看你是否有一个额外的sockets,一个副本,或一个没有连接的额外sockets。 如果不是那样,那么您可能没有正确地将您的sockets连接到您的代码。
请记住,当您尝试调用不存在的sockets(按钮,视图,文本字段等)时,会发生SIGABRT。
对我来说,这不是一个出路。 我通过转错来解决问题并阅读它所说的内容。 (也是Noob ..)
这是错误:
解决方案在这里:
只需在输出中向上滚动,就会显示错误。
此类错误的一个常见原因是您可能更改了IBOutlet或IBAction的名称,您可以通过转到源代码来检查它。
单击main.storyboard ,然后选择打开 ,然后选择源代码
源代码将打开
然后检查是否有您已更改的iboutlet或ibaction的名称,如果有,则选择该部件并将其删除,然后再次创建iboutlet或ibaction。 这应该可以解决您的问题
我有同样的问题。 我在故事板中创建了一个按钮并将其连接到ViewController,然后删除了按钮。 所以连接仍然存在,但按钮不是,所以我得到了和你一样的错误。
修理:
转到连接检查器(右上角的箭头,在故事板中) ,然后删除所有未使用的连接。
在我的情况下,没有任何日志。
我的错误是将视图控制器推送到导航堆栈中,该导航堆栈已经是导航堆栈的一部分。
在我的情况下,我没有得到错误只是在AppDelegate崩溃,我不得不取消选中下一个选项: OS_ACTIVITY_MODE
然后我可以在我的.xib文件中获得真正的崩溃原因
希望这也可以帮助你:)