簡體   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