質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1994閲覧

電卓を作ってみたのですが...

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2015/03/19 06:02

編集2015/03/20 02:24

swift初心者です。
今回、swiftで簡単な電卓を作ってみたのですが、AppDelegate.swiftでエラーが起きてしまいアプリが中断されてしまいます。
エラー内容はclass AppDelegate: UIResponder, UIApplicationDelegate の行で以下のようなエラー文でした。

Thread 1: signal SIGABRD

そして、下にはViewController.swiftのソースを載せます。```lang-swift
import UIKit

class ViewController: UIViewController {

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. myButton0.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton1.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton2.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton3.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton4.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton5.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton6.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton7.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton8.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButton9.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButtonPlus.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButtonMinus.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButtonMulti.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButtonDivision.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) myButtonEqual.addTarget(self, action: "buttonClicked", forControlEvents: .TouchUpInside) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBOutlet weak var myLabel: UILabel!;

// 数字を表すプロパティ
@IBOutlet weak var myButton0: UIButton!;
@IBOutlet weak var myButton1: UIButton!;
@IBOutlet weak var myButton2: UIButton!;
@IBOutlet weak var myButton3: UIButton!;
@IBOutlet weak var myButton4: UIButton!;
@IBOutlet weak var myButton5: UIButton!;
@IBOutlet weak var myButton6: UIButton!;
@IBOutlet weak var myButton7: UIButton!;
@IBOutlet weak var myButton8: UIButton!;
@IBOutlet weak var myButton9: UIButton!;

@IBOutlet weak var myButtonPlus: UIButton!;//足し算のプロパティ @IBOutlet weak var myButtonMinus: UIButton!;//引き算のプロパティ @IBOutlet weak var myButtonMulti: UIButton!;//掛け算のプロパティ @IBOutlet weak var myButtonDivision: UIButton!;//割り算のプロパティ @IBOutlet weak var myButtonEqual: UIButton!; func buttonClicked(sender: UIButton){ switch sender { case myButtonPlus,myButtonMinus,myButtonMulti,myButtonDivision: command = sender.titleLabel!.text!; inputR = true;//右辺の入力に移る case myButtonEqual: //ボタンがタップされた if inputR { var result: Int?; switch command { case "+": result = left.toInt()! + right.toInt()!; case "-": result = left.toInt()! - right.toInt()!; case "*": result = left.toInt()! * right.toInt()!; case "/": result = left.toInt()! / right.toInt()!; default : result = 0; } myLabel.text = "\(result)";//結果の表示 //次の入力のためのデータの初期化 left = ""; right = ""; inputR = false; } default : //ボタン0-9がタップされた時 if inputR { //右辺入力時の動作 right = right + sender.titleLabel!.text!; myLabel.text = right; } else { //左辺入力中なら left = left + sender.titleLabel!.text!; myLabel.text = left; } } } var right: String = "";//計算の右辺となる文字列 var left: String = "";//計算の左辺となる文字列 var inputR: Bool = false;//右辺を入力中かどうか var command: String = "";//計算に使用するコマンド

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mitsuyoshi

2015/03/20 17:07

AppDelegate.swift の signal SIGABRD が出ているメソッドの実装を載せてください
guest

回答1

0

おそらく簡単な間違えで発生する事が多いエラーメッセージです。

とりあえずブレークポイントをおいてどこの瞬間で呼ばれるか攻めていったほうがいいです。

http://lab-b.jp/2014/01/30/post-1364/
bure

あと、どのようなことをした時にエラーになりますか?

投稿2015/03/23 05:26

shinriyo

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問