2017-04-21 15 views
11

私はちょうどスウィフトコーディングの初心者です。私のアイデアは2つのボタンを持つアプリです。クリックすると、テキストフィールドのテキストが変更されます。 Main.StoryBoardには、テキストフィールドと2つのボタンが追加されています。 ViewController.swiftファイルにあります。私は次のように書いています。スイフトエラー:シグナルSIGABRTを解決する方法

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:signal SIGABRT

ファイルAppDelegate.swift行に:しかし、エラーが表示され表示されます

class AppDelegate: UIResponder, UIApplicationDelegate 

私のコードの何が問題になっているのですか?

+1

あなたはアウトレットを正しく接続していません。 – rmaddy

+0

私は試しましたが、解決できませんでした。あなたはどういう意味ですか?コードのために。どのように同じコードで2つの異なるボタンを識別することが可能ですか? – chucklai

+1

ボタンにコンセントを接続してから、コンセント名を変更しましたか? –

答えて

1

私はこの問題をで解決しました。プロジェクトと修復です。プロジェクトはメニューバーに行ってきれいにするには

:製品 - >クリーン

そして、それは口ではなかった私にとってはいつもの

22

コンセントが接続されていない場合はいつでもSIGABRTエラーが発生します。ストーリーボードのビューコントローラをクリックし、サイドパネルの接続に進みます(矢印記号)。余分なコンセントがあるかどうか、重複しているか、または接続されていない余分なコンセントがあるかどうかを確認してください。それがそうでない場合は、コンセントをコードに正しく接続していない可能性があります。

SIGABRTは、そこにないコンセント(ボタン、ビュー、テキストフィールドなど)を呼び出そうとしているときに起きることを覚えておいてください。

+0

を接続してください。私は、コンセントが間違っていたことを意味する新しいボタンアイテムを再作成して問題を解決しました。すべてのアウトレット接続を表示する方法はありますか? – chucklai

+1

はい!あなたのストーリーボードに移動し、すべてのアウトレットを表示したいView Controllerを見つけて、その上部の黄色いロゴをクリックして、円の中の四角形を表示します。次に、右側のサイドパネルに移動し、円のある矢印(右上)をクリックします。すべてのアウトレットとアクションの接続を見ることができます。 –

4

として実行]ボタンをクリックだけを再構築します。私はエラーに行くことによって問題を解決し、それが何を言ったのかを読んでいる。 (またNoobの...)

これは誤りでした:

enter image description here

、溶液をここにあった:enter image description here

ちょうど出力を上にスクロールし、エラーが明らかにされます。

1

私は同じ問題がありました。私はストーリーボードでボタンを作成し、それをViewControllerに接続し、その後ボタンを削除しました。接続はまだありましたが、ボタンはなかったので、私はあなたと同じエラーを受けました。 (ストーリーボードで右上の矢印)接続インスペクタ

移動をし、未使用の接続を削除します。

を修正します。

2

このタイプのエラーの一般的な理由は、IBOutletまたはIBActionの名前を変更した可能性があります。これは、ソースコードに行くことで簡単に確認できます。

メインのをクリックします。ストーリーボード、その後 としてオープンを選択して変更したiboutletまたはibactionの名前があるかどうかをチェックし

を開きますソースコード enter image description here

ソースコードを選択し、部品を選択して削除してから、iboutletまたはibactionを再度作成します。 これで問題は解決するはずです

関連する問題