storyboardのデバッグ方法

バグがあった際にわかりづらい代表格として、storyboard関連のバグがあります。
viewとして呼び出したけど、表示されずに何か落ちてしまう。
しかし、storyboardのSIGABRTがらみは、他人に聴くのはタブーな感じです。

問題としては、部品のpropertyの対応付けがうまくいっていないケースがほとんどですが、
それでもダメな場合もあります。心が折れますね。
今回の場合、iOS8では落ちないけど、iOS7だとなぜか落ちるというひどい状況でした。

デバッグなのですが、どの部品に問題があるか、消去しつつ1つずつ消しながら確認をします。
が、ここで重要なのが、それだけではダメだということ。
storyboardがうまく動作した場合に、viewDidLoadが読み込まれるので、これを利用します。
つまり、viewDidLoadの先頭にbreakpointをつけましょう。

これで、後は地道にやっていくだけです。
部品の問題が特定できれば、そこを見て行きましょう。それでも究明までは大変でしたが。

今回、constraintにuser define runtime attributeで値がセットされていたがために、
iOS7で落ちてしまいました。ちなみに設定したのは私ではなく、他の開発者です。
こういったことはよくありがちなのですが、他人のバグを究明するのは、わかっていても
なかなか骨が折れるものです。
参考:iOS8ではconstraintにuser define runtime attributeに値を設定しても落ちないが、iOS7では落ちる

  by ddrer-yossi | 2015-01-06 02:08 | その他

<< 悔しいけど、進捗はなし 走りきった。太った。 Mach... >>

SEM SKIN - DESIGN by SEM EXE