繁体   English   中英

线程1:发出SIGABRT AppDelegate.swift信号

[英]Thread 1: signal SIGABRT AppDelegate.swift

我试着编译我的第一个iOS Hello应用程序。

我有

ViewController.swift

//
//  ViewController.swift
//  My First Project

import UIKit

class ViewController: UIViewController {

    // Declare components
    @IBOutlet weak var inputLabel: UILabel!



    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


    }

    @IBAction func submitBtn(_ sender: Any) {
        inputLabel.text = "Hello World"

    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

我保持

Build Succeeded

在此输入图像描述

但是大约5秒后,我得到了这个

在此输入图像描述


控制台错误

在此输入图像描述

         0x0000000103915f69 -[UIApplication workspaceDidEndTransaction:] + 188
    18  FrontBoardServices                  0x000000010770f723 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
    19  FrontBoardServices                  0x000000010770f59c -[FBSSerialQueue _performNext] + 189
    20  FrontBoardServices                  0x000000010770f925 -[FBSSerialQueue _performNextFromRunLoopSource] + 45
    21  CoreFoundation                      0x0000000105ff0311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    22  CoreFoundation                      0x0000000105fd559c __CFRunLoopDoSources0 + 556
    23  CoreFoundation                      0x0000000105fd4a86 __CFRunLoopRun + 918
    24  CoreFoundation                      0x0000000105fd4494 CFRunLoopRunSpecific + 420
    25  UIKit                               0x00000001039147e6 -[UIApplication _run] + 434
    26  UIKit                               0x000000010391a964 UIApplicationMain + 159
    27  My First Project                    0x0000000102e6db3f main + 111
    28  libdyld.dylib                       0x0000000106f7868d start + 1
    29  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

试试#1

连接检查员

我曾经有这个

在此输入图像描述

我更新了这个

在此输入图像描述

重新运行并仍在发生......


试试#2

清洁项目

重新运行并仍在发生......

问题在您的标签中,我100%确定您删除了一些插座参考,并忘记从故事板中删除连接。 请检查

当您删除ViewController引用插座并忘记从storyboard删除连接时,会发生此问题。

完美的连接✅

完美的参考插座如下图所示。

在此输入图像描述 在此输入图像描述

现在让我们从.h文件中删除引用插座

问题⚠️

如果我们从.h文件中删除引用.h Xcode将在Storyboard中发出警告。 这是你可以找到哪个插座从课堂上删除的技巧。

我希望这能帮到您 。

在此输入图像描述

在此输入图像描述

在您的情况下,您可能已将名称lable更改为inputLable因此您需要执行以下操作:

删除label的连接。 将控制器重新连接到inputLabel

代码和屏幕截图不一致。

\n
  • 代码: label.text = "Hello World"
  • 屏幕截图: inputLabel.text = "Hello World"

错误消息是:

...不符合键值标签的键值。

因此,最有可能在您的实际代码中, IBOutlet被命名为inputLabel但在Interface Builder中, label的(死)连接会导致崩溃。

解:

  • 选择导航栏中的Main.storyboard和画布中的ViewController
  • 打开Connections Inspector( ⌥⌘6
  • 删除label的连接。
  • 将控制器连接到inputLabel

你有没有检查过默认的IBOutlet视图。

在此输入图像描述

确保故事板元素已连接到代码中的插座。 尝试删除连接检查器中的所有连接并重新连接元素

当您转到main.storyboard时,右侧有一个面板,最右侧是连接检查器。 在那里你必须通过按连接中的小'x'来删除连接。

它应该看起来有点熟悉,但在这个截图中有不同的名字

删除所有这些

也可以在viewController.swift文件中删除所有@IBOutlet行。

然后再将您的插座连接到您之前执行的ViewController.swift文件

如果只是更改代码中的标签,它最终应该看起来像这个最终的截图

注意右边的插座

我希望这能帮到您!

它崩溃是因为您在ViewController.swift代码中删除了您的IBOutlet label ,而没有删除Storyboard上的connection

@IBOutlet weak var label: UILabel!

为了解决这个问题,右击inputLabelstoryboard ,点击“X”按钮label这样的连接: 删除删除的连接

注意:在代码中删除IBOutlet之前,请不要忘记删除故事板中的连接。

其他人已经提到了关于网点及其参考资料,你必须确保它们已经正确地连接到你的班级。

我想到的另一个可能的情况可能是这样:如果您在故事板中的identity inspector选项卡中的user defined Rundtime Attributesuser defined Rundtime Attributes标签的键路径,并且如果未定义该键,您将在控制台中收到此消息错误日志:

...this class is not key-value compliant for the key label.

例如,在下面的图像中,您会看到一个键路径popupTitle如果它没有在您的标签类中定义,它将收到此错误消息。 在某些情况下它会崩溃。 确保本节中没有额外的密钥路径。

在此输入图像描述

这发生在我身上,因为我正在从另一个项目复制一些文件(并重命名它们)。 Xcode感到困惑,显然在连接插座时遇到了困难。 在Xcode中,一切看起来都很好,但我遇到了与运行时问题相同的错误,没有进一步的解释。

我通过清理项目并删除派生数据来修复它。 一如既往.. :/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM