ブログBlog
+(void)load
投稿日:2017年07月05日
ヌノです。
objective-cでハマってしまったので備忘録に・・・。
とあるクラスが持つ「+(void)load」の関数。この関数を呼ぶ処理を削除して処理が実行されないように修正したにも関わらず、実行されていました。
ブレークポイントを配置しデバッグ実行で調べるとさらに驚いたことに、main関数が呼ばれる前に呼ばれます。
通常、main関数真っ先に呼ばれるハズが、「+(void)load」はmain関数が呼ばれる仕様のようで、不具合では無いそうです。
今回は「+(void)load」に悩まされましたが、私が知らないだけで、同様に特定の関数名の関数を作ると想定外の挙動になる事はあると思います。
変数に名前を付ける時は汎用性の高いありふれた名前を付ける時は注意が必要です。