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

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

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

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

Q&A

解決済

2回答

430閲覧

Swift4 Single View Applicationのprintによるデバッグ方法

kinesin_lks

総合スコア8

Swift

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

0グッド

0クリップ

投稿2017/12/26 09:19

編集2017/12/27 05:56

解決しました
助言いただいたfuzzballさん、komo_taさん、本当にありがとうございました!
ViewController Custom ClassのClassの紐付けがうまく行っていなかったことが原因でした。
Ans

初歩的なことです。
先日RealmSwiftを始めてみようと思い、WorkspaceをCocoaPodsを使って作成しました。
そこで、デバッグの確認も兼ねてHello,world!を出力をしようとしたのですが、コンソールに出ませんでした……

Single View Applicationだとデバッグにコンソールは使用できないのでしょうか?
もしできないのなら、皆さんはどのような方法でデバッグしているのでしょうか?

教えてください。

以下ViewController.swiftのコードです。

Swift

1 2import UIKit 3 4class ViewController: UIViewController 5{ 6 7 override func viewDidLoad() 8 { 9 super.viewDidLoad() 10 print("Hello,world!") 11 } 12} 13

追記
現状
・print("Hello,world!")が実行されない。
・breakpointを設置して、コンソールに出力しようとしても出力されない。
・Buildは成功している。
・デバッグコンソールに(lldb)の文字は出ていない。
・poコマンドは使用できなかった。

・assertionFailure()の実行
assertionFailure

・breakpointの実行
breakpoint

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

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

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

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

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

fuzzball

2017/12/26 09:33

コンソールというのはXcodeのコンソールのことですか?そのコード(print)が実行されていることは確認しましたか?
kinesin_lks

2017/12/26 09:46

返信ありがとうございます。初学者なもので、実行確認の方法すらわかりません……具体的にどのように確認すれば良いでしょうか?
fuzzball

2017/12/27 02:15 編集

ブレークポイントを使って下さい。ところで、デバッグエリアはコンソール表示になってますか?
kinesin_lks

2017/12/27 01:06

ご丁寧にありがとうございます。デバッグエリアは表示されているのですが、(lldb)すら表示されないんです。breakpointでコンソールにログとして出力しようとしても、何も出ません……
fuzzball

2017/12/27 01:34

ブレークポイントはログを出力するための機能ではありません。プログラムを中断するための機能です。print文の下に assertionFailure() を追加して実行してもらえますか?これが実行された時点でプログラムが止まりますので。止まらなければ、そのviewDidLoad()が実行されていないことになります。
kinesin_lks

2017/12/27 02:57

assertionFailureを次の行に入れて実行してみたのですが、何も表示されませんでした。プログラムが止まっていない?ようなので実行されていないのかもしれません。画像は投稿に追加いたしました。
fuzzball

2017/12/27 03:48

一旦、新規にプロジェクトを作って試してもらえますか?(後で原因を探りたいので、今のプロジェクトは消さないで下さい)
kinesin_lks

2017/12/27 05:37

新しくプロジェクトを作成したところうまくいきました!元のプロジェクトに何か問題があったようです……
fuzzball

2017/12/27 05:43

では、もう少しだけ調べさせて下さい。rootViewControllerの設定は出来ているんですよね?(Is Initial View Controllerにチェックが入っている)これがOKなら、次はIdentity inspectorを開いて、一番上のCustom Classの設定は出来ているでしょうか? ViewController になっていれば正しいのですが。
kinesin_lks

2017/12/27 05:47 編集

確認したところ、そこでした!なぜかCustom ClassのClassが空白になっており、紐付けがうまく行っていなかったようです。本当にありがとうございました!
fuzzball

2017/12/27 05:52

では御自分で回答を書いて質問をcloseして下さい。
kinesin_lks

2017/12/27 05:59

承知しました。fuzzballさんの的確な指摘で早めに解決できました!本当にありがとうございました!
guest

回答2

0

自己解決

ViewController Custom ClassのClassで適切な紐付けを行う。(詳細は質問文に記述)

投稿2017/12/27 05:59

kinesin_lks

総合スコア8

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

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

0

ブレイクポイントを使ってそこまで処理が走っているか確認してみてください。
また出力させたいViewControllerが一番最初の起動画面なのでしたら、それがrootViewControllerとして正しく定義されているかどうがみるのもいいかもしれません。

イメージ説明
イメージ説明

投稿2017/12/26 18:37

編集2017/12/27 02:13
komo_ta

総合スコア275

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

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

kinesin_lks

2017/12/27 01:11

返信ありがとうございます。 breakpointでコンソールにログとして出力しようとしても何も出ませんでした。 また、「rootViewControllerとして定義されているか」というのも調べてはみたのですが、確認の仕方が分からなかったので教えていただけないでしょうか?
komo_ta

2017/12/27 02:11

そもそもbreakpointでprintが処理として通過しているか確認していただきたかったのですが、printは処理されている認識でいいでしょうか? 画像載せましたので確認いただけたらと思います。 rootViewControllerに関してはこちらを参考ください http://stubgurssy.hatenadiary.com/entry/2017/11/15/063814
kinesin_lks

2017/12/27 03:10

画像とWebページ確認いたしました。 rootの設定はされていましたが、fuzzballさんからのアイデアをお借りして確かめてみたものの、そもそもprintが実行されていないようです…… なぜなのでしょうか……
komo_ta

2017/12/27 03:19

それは自分が先ほど送ったようにprint横にブレイクポイント置いて、print横で処理止めることできたという認識でいいでしょうか? 実行されてないかどうかは、そもそも処理が呼ばれているかどうかをはっきりさせてから考えたく、今いただいた返信だとそれが若干曖昧です。
kinesin_lks

2017/12/27 05:16

真っ当な回答ができず、申し訳ありません…… 処理を止めることはできていないように感じます。 breakpointをprint横に置いたのですが、何も表示されませんでした。 komo_taさんの画像のように、「Thread 1 breakpoint」のコメントすら出ていない状況です。
komo_ta

2017/12/27 06:32

解決できてよかったです!ブレイクポイント使えた方が開発捗るかと思いますので、使い始めてみてください!
kinesin_lks

2017/12/28 01:38

もちろんです! breakpointにも色々な使い方があるようなので模索していこうと思います。 今回はありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問