3450
24084
私はSwiftコーディングの初心者です。私のアイデアは非常にシンプルで、2つのボタンがあるアプリです。クリックすると、テキストフィールドによってテキストが変更されます。
Main.StoryBoardに、テキストフィールドと2つのボタンを追加します。
ViewController.swiftファイル内。私はこれを書いています:
UIKitをインポートする
クラスViewController:UIViewController {
@IBOutlet弱い変数テキストフィールド:UITextField!
@IBOutlet弱いvarボタン:UIButton!
@IBOutlet弱い変数button2:UIButton!
@IBAction func action1(_ sender:UIButton){
textfield.text = "ボタンをクリックしたばかり1"
}
@IBAction func action2(_ sender:UIButton){
textfield.text = "ボタン2をクリックしただけです"
}
}
大丈夫なはずです。ただし、次のようなエラーが表示されます。
thread1:signal SIGABRT
ファイルAppDelegate.swift行:
クラスAppDelegate:UIResponder、UIApplicationDelegate
私のコードの何が問題になっていますか? 
この問題を解決するには、最初にプロジェクトをクリーンアップしてから再構築します。
プロジェクトをクリーンアップするには、MenuBarに移動します:Product-> Clean
次に、プロジェクトを再構築するには、通常どおり[実行]ボタンをクリックします。
|
コンセントが切断されていると、SIGABRTエラーが発生します。ストーリーボードでビューコントローラをクリックし、サイドパネルの接続に移動します(矢印記号)。そこに余分なコンセントがあるか、重複しているか、接続されていない余分なコンセントがあるかどうかを確認します。そうでない場合は、コンセントをコードに正しく接続していない可能性があります。
SIGABRTは、そこにないアウトレット(ボタン、ビュー、テキストフィールドなど)を呼び出そうとしたときに発生することを覚えておいてください。
|
私にとって、それはコンセントではありませんでした。私はエラーに行き、それが言ったことを読むことによって問題を解決しました。 (またNoob ..)
これはエラーでした:
そして解決策はここにありました:
出力を上にスクロールするだけで、エラーが表示されます。
|
このタイプのエラーの一般的な理由は、IBOutletまたはIBActionの名前を変更した可能性があることです。これは、ソースコードに移動するだけで確認できます。
main.storyboardをクリックし、[名前を付けて開く]を選択します
次に、ソースコードを選択します
ソースコードが開きます
次に、変更したiboutletまたはibactionの名前があるかどうかを確認します。ある場合は、パーツを選択して削除し、iboutletまたはibactionを再度作成します。
これで問題が解決するはずです
|
私の場合、AppDelegateでクラッシュしただけでエラーが発生しなかったため、次のオプションであるOS_ACTIVITY_MODEのチェックを外す必要がありました。そうすると、.xibファイルで実際のクラッシュ理由を取得できました。
これがあなたにも役立つことを願っています:)
|
私も同じ問題を抱えていました。ストーリーボードにボタンを作成してViewControllerに接続し、後でボタンを削除しました。そのため、接続はまだありましたが、ボタンがなかったので、あなたと同じエラーが発生しました。
修正するには:
接続インスペクター(ストーリーボードの右上隅にある矢印)に移動し、未使用の接続をすべて削除します。
|
Xcode 10でこれに遭遇した場合は、ビルドする前にクリーンアップする必要があります。または、レガシービルドシステムに切り替えます。ファイル->ワークスペース設定...->ビルドシステム:レガシービルドシステム。
|
私の場合、ログはまったくありませんでした。
私の間違いは、すでにナビゲーションスタックの一部であるナビゲーションスタックにViewControllerをプッシュすることでした。
|
関数をメインスレッドでのみ実行する必要がある場合にも発生することがあるため、次のようにメインスレッドに割り当てることで修正できます:-
DispatchQueue.main.async {
ここにあなたのコード
}
|
私にとって、このエラーは、実行中のセグエに適用できない準備セグエステップがあったためです。
長い話:
func prepare(for segue:UIStoryboardSegue、sender:Any?){をオーバーライドします。
gosetup = segue.destination as!更新
gosetup.wherefrom = updatestring
}
これは、1人だけの場合、すべてのセグエに対して行われていました。だから私はブール値を作成し、その中にgosetupを配置しました。
|
これは非常に一般的なエラーであり、さまざまな理由で発生する可能性があります。最も一般的なのは、ストーリーボードのViewControllerに接続されているIBOUTLET / IBACTIONが、ストーリーボードからではなく、swiftファイルから削除された場合です。そうでない場合は、下部のツールバーのログを使用して、エラーが何であるかを調べ、診断します。ブレークポイントとデバッグを使用して、エラーを見つけるのに役立てることができます。
エラーを修正する方法を見つけるには、Googleで見つけたこの記事を使用してください:https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode
|
私の場合、検索の実行にRxSwiftを使用していました。
onNextメソッド内で特定のクラスの共有インスタンスを広範囲に使用し続けたため、おそらくアクセスできなくなりました(Mutex)。
そのようなインスタンスは、絶対に必要な場合にのみ慎重に処理するようにしてください。
私の場合、共有インスタンスのメソッドの戻り値を安全に(そして順番に)格納するために事前にいくつかの変数を利用し、それらをonNextブロック内で再利用しました。
|
私も同じ問題を抱えていました。私の場合、ファイルを上書きしただけです
GoogleService-Info.plist
その道に:
Platform \ ios \ YOUR_APP_NAME \ Resources \ Resources
私の場合、ファイルはデータなしで存在していました。
|
非常に活発な質問。この質問に答えるために10の評判を獲得してください。レピュテーション要件は、この質問をスパムや非回答アクティビティから保護するのに役立ちます。
あなたが探している答えではありませんか? ios swiftとタグ付けされた他の質問を参照するか、独自の質問をしてください。