MILLEN BOX

音楽好きの元組み込みソフトエンジニアによるプログラミング(主にiOSアプリ開発)の勉強の記録

新しいメソッドを作ったら取り敢えずすること [swift2.0] [print]

前回ぶつかった問題に関連してほぼ初めてオープンソースライブラリを使ってみています。
んん?と思うところがあっても、ブラックボックスでないので、中の動作を追えておもしろいです。
しかし本来の目的を忘れてどっぷりハマってしまうこともしばしば...。
気を付けないといけないです。

本日は新しいメソッドを作成した時に私が個人的にやっていることを残しておきます。

自分ポイント

私は新規でメソッドを作成した場合、その頭で以下のようなprintを初めに書いてしまいます。

func testFunc() {    //新規作成したメソッド
    print("\(__FUNCTION__) is called!")    //いつも書くprint文
}

__FUNCTION__という記載ですが、その時実行しているメソッド名(String型)です。 つまり上記ソースコードの場合の出力結果は以下のようになります。

testFunc is called!

これを書いておけば、空メソッドであっても、少なくとも呼び出されているということだけは確認することができます。
役に立つかどうかについて「?」の方も多いかとは思いますが、小心者の私にとってはこれだけでも大きな安心材料になってます。
ログがうるさくなればコメントアウトするだけですし。

いいところとしては、何も考えずにコレを書いとくだけで、どこで出力されたprintかが大体分かることです。
print("test001")みたいなのを複数に書いちゃうと、テスト用とはいえどこでの出力かがわからなくなってきます。

ちなみに同一メソッド内の複数箇所に記載した場合、差異は出ません。
そこの部分についても差異を確認したいという場合、\(__LINE__)というのを追加して上げて下さい。
そのprintを記載した行数が追加表示されるので、どこのprintかを一意に判別できます。

ソース

func testFunc() {    //新規作成したメソッド
    print("(\(__LINE__)) \(__FUNCTION__) is called!")    //いつも書くprint文
    print("(\(__LINE__)) \(__FUNCTION__) is called!")    //いつも書くprint文
}

出力

(29) testFunc is called!
(30) testFunc is called!

他にもswiftでは違うパターンの同様の記載方法(マクロといいます)に対応しています。
下記リンクをご参考頂ければと思います。

▶︎Swiftでデバッグ出力(日時、メソッド名、行番号) - 定食屋おろポン

以上です。ありがとうございました。