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

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

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

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

Q&A

解決済

2回答

3706閲覧

Thread 1 : breakpoint 1.1

TheLastSoldier

総合スコア16

Swift

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

0グッド

0クリップ

投稿2016/06/02 14:24

編集2016/06/02 23:02

私は電卓アプリを制作しています。まず、"1"などの自然数が書かれたボタンを押した時に表示画面にその数字を表示させる、という処理をコードで書こうと思いました。

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.Calculation() } func Calculation() { let backView = UIView() //背景 backView.frame = CGRect(x:0.8, y:20.0, width:373.0, height:646.0) backView.backgroundColor = UIColor.whiteColor() self.view.addSubview(backView) let label0 = UIButton() //1 label0.frame = CGRectMake(230, 10, 40, 40) label0.backgroundColor = UIColor.blackColor() label0.setTitle("0", forState: .Normal) label0.setTitleColor(UIColor.cyanColor(), forState: UIControlState .Normal) label0.titleLabel!.font = UIFont.systemFontOfSize(29) label0.tag = 0 backView.addSubview(label0) let label1 = UIButton() //1 label1.frame = CGRectMake(1, 272, 124, 124) label1.backgroundColor = UIColor.redColor() label1.setTitle("1", forState: .Normal) label1.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label1.titleLabel!.font = UIFont.systemFontOfSize(29) label1.tag = 1 backView.addSubview(label1) let label2 = UIButton() //2 label2.frame = CGRectMake(126, 272, 124, 124) label2.backgroundColor = UIColor.redColor() label2.setTitle("2", forState: .Normal) label2.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label2.titleLabel!.font = UIFont.systemFontOfSize(29) label2.tag = 2 backView.addSubview(label2) let label3 = UIButton() //3 label3.frame = CGRectMake(251,272, 124, 124) label3.backgroundColor = UIColor.redColor() label3.setTitle("3", forState: .Normal) label3.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label3.titleLabel!.font = UIFont.systemFontOfSize(29) label3.tag = 3 backView.addSubview(label3) let label4 = UIButton() //4 label4.frame = CGRectMake( 1, 397, 124, 124) label4.backgroundColor = UIColor.blackColor() label4.setTitle("4", forState: .Normal) label4.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label4.titleLabel!.font = UIFont.systemFontOfSize(29) label4.tag = 4 backView.addSubview(label4) let label5 = UIButton() //5 label5.frame = CGRectMake(126,397, 124, 124) label5.backgroundColor = UIColor.blackColor() label5.setTitle("5", forState: .Normal) label5.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label5.titleLabel!.font = UIFont.systemFontOfSize(29) label5.tag = 5 backView.addSubview(label5) let label6 = UIButton() //6 label6.frame = CGRectMake(251, 397, 124, 124) label6.backgroundColor = UIColor.blackColor() label6.setTitle("6", forState: .Normal) label6.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label6.titleLabel!.font = UIFont.systemFontOfSize(29) label6.tag = 6 backView.addSubview(label6) let label7 = UIButton() //7 label7.frame = CGRectMake(1, 522, 124, 124) label7.backgroundColor = UIColor.blueColor() label7.setTitle("7", forState: .Normal) label7.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label7.titleLabel!.font = UIFont.systemFontOfSize(29) label7.tag = 7 backView.addSubview(label7) let label8 = UIButton() //8 label8.frame = CGRectMake(126, 522, 124, 124) label8.backgroundColor = UIColor.blueColor() label8.setTitle("8", forState: .Normal) label8.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label8.titleLabel!.font = UIFont.systemFontOfSize(29) label6.tag = 8 backView.addSubview(label8) let label9 = UIButton() //9 label9.frame = CGRectMake(251, 522, 124, 124) label9.backgroundColor = UIColor.blueColor() label9.setTitle("9", forState: .Normal) label9.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) label9.titleLabel!.font = UIFont.systemFontOfSize(29) label6.tag = 9 backView.addSubview(label9) //足し算 let labelplus = UIButton() labelplus.frame = CGRect(x: 10, y: 10, width: 40, height: 40) labelplus.backgroundColor = UIColor.blackColor() labelplus.setTitle("+", forState: .Normal) labelplus.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) labelplus.titleLabel!.font = UIFont.systemFontOfSize(29) labelplus.tag = 01 backView.addSubview(labelplus) let labelminus = UIButton() //引き算 labelminus.frame = CGRect(x: 60, y: 10, width: 40, height: 40) labelminus.backgroundColor = UIColor.blackColor() labelminus.setTitle("-", forState: .Normal) labelminus.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) labelminus.titleLabel!.font = UIFont.systemFontOfSize(29) labelminus.tag = 02 backView.addSubview(labelminus) let labelproduct = UIButton() //掛け算 labelproduct.frame = CGRect(x: 110, y: 10, width: 40, height: 40) labelproduct.backgroundColor = UIColor.blackColor() labelproduct.setTitle("x", forState: .Normal) labelproduct.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) labelproduct.titleLabel!.font = UIFont.systemFontOfSize(29) labelproduct.tag = 03 backView.addSubview(labelproduct) let labelquontient = UIButton() //割り算 labelquontient.frame = CGRect(x: 180, y: 10, width: 40, height: 40) labelquontient.backgroundColor = UIColor.blackColor() labelquontient.setTitle("/", forState: .Normal) labelquontient.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) labelquontient.titleLabel!.font = UIFont.systemFontOfSize(29) labelquontient.tag = 04 backView.addSubview(labelquontient) let labelclear = UIButton() //現在の計算結果を0にリセット labelclear.frame = CGRect(x: 280, y: 10, width: 40, height: 40) labelclear.backgroundColor = UIColor.blackColor() labelclear.setTitle("C", forState: .Normal) labelclear.setTitleColor(UIColor.cyanColor(), forState: UIControlState.Normal) labelclear.titleLabel!.font = UIFont.systemFontOfSize(29) labelclear.tag = 05 backView.addSubview(labelclear) let labelresult = UILabel() //計算結果を表示させる labelresult.frame = CGRect(x: 1, y: 60, width: 370, height: 210) labelresult.backgroundColor = UIColor.lightGrayColor() backView.addSubview(labelresult) func num(sender:UIButton){ switch sender.tag { case 0: labelresult.text = "0" default: break } } } //ここです! override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

}

しかし、iPhone 6s でシミュレーターを起動してみると、エディタ画面に戻ってしまい、Thread 1 :breakpoint1.1というエラーが出てしまいます。control + command + y をしてみましたが、処理が実行されません。何が原因なのか全くわかりません。どうかご回答よろしくお願いしますm(_)m

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

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

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

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

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

guest

回答2

0

ベストアンサー

参考(1) http://www.kenschool.jp/blog/?p=1340

参考(2) http://tsutomu822.hatenablog.com/entry/2013/09/09/230022
を参考にしてください。
「Thread 1 :breakpoint1.1」というメッセージは、エラーが発生したのではありません。ブレークポイントの設定により、その行で実行が中断されているだけです。
参考(1)に書かれてある「実行継続」ボタンを押せば実行を再開できますし、そもそもブレークポイントを設定して何か調べるるつもりがないのであれば、参考(2)に書かれているように、そのブレークポイントを削除してください。

「control + command + y をしてみましたが、処理が実行されません。」と書かれているということは、実はエラーではなくて中断している状態であり、「control + command + y」により実行を再開できることをあなた自身も既に理解しているのかもしれませんが、それをやって「処理が実行されません」というのは、その後どうなることを期待していて、どういう問題が発生しているのか具体的に説明してください。

もし「control + command + y」を押したら、画面は表示されるけど、ボタンを押しても数字が表示されないということを問題として質問しているのであれば、その原因はボタンを押された時に実行する処理が正しく書けてないからです。

それを解決したいなら、少なくとも以下の3点は修正する必要があります。
0. num関数はCalculation関数の外(かつViewControllerクラスの中)で定義する。(Kenterouさんの指摘通り)
0. 計算結果表示ラベル(let labelresult = UILabel())は、Calculation()関数の外(かつViewControllerクラスの中)でプロパティとして定義する。
0. label0等の数値ボタンは、タップしたらnum関数が呼ばれるようlabel0.addTarget(self, action: #selector(ViewController.num(_:)), forControlEvents: .TouchUpInside)でタップイベントを登録する。

投稿2016/06/03 04:58

編集2016/06/03 05:43
TakeOne

総合スコア6299

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

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

guest

0

以下のメソッドがCalculation()メソッドの中に定義されている様に見えますが、こちらはどのタイミングで何処から呼び出されていますか?

※とりあえずコードを貼り付けて実行してみましたが、こちらではエラーは確認できませんでした。
ViewControllerの全てのコードを載せてもらった方が、適切なアドバイスができるかと思います。

swift

1func num(sender:UIButton){ 2 switch sender.tag { 3 case 0 4 labelresult.text = "0" 5 default: break 6 } 7}

投稿2016/06/02 20:37

_Kentarou

総合スコア8490

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

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

_Kentarou

2016/06/03 00:17

新規プロジェクトにそのままコピペして実行しましたが(シュミレータ iPhone 6s)そのまま起動して画面が表示されました。 なにか操作をする時に落ちるということでしょうか?
TheLastSoldier

2016/06/03 00:38

ボタンを押すと数字は表示されますか? あとアプリの起動画面が表示されません
_Kentarou

2016/06/03 03:24

> ボタンを押すと数字は表示されますか? こちらはそのような実装にはなっていないので、表示されないです。 コンソールにエラーメッセージ等は表示されていませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問