swiftでRGBを計算したら困った話
感の良い方なら私が何を困ったか想像がつくかもしれません。 それほど基本的な事ですが、情けない事に小一時間ほどつぶしました。
やりたかった事は一番単純なグレースケール、RGBの平均をとりたかっただけです。 コードでいうと、小学生の問題。
(red + green + blue) / 3
これが、 EXC_BREAKPOINT (code=1, ...
などというメッセージと共に止まってしまう。
ブレークポイントは入れていないのに、EXC_BREAKPOINTといって止まります。 最初は、何かxcodeが覚えているブレークポイントの位置がおかしくなったのかと思い、プロジェクトをクリアしたり再起動したりしてみましたが、状況は変わらず。
謎だなぁと思いながらコーヒーを淹れて戻り、一行づつ消して試していたら、、
UInt8か、なるほど。255を超えたから止まっていたようです。 止まるのは良いんです。でも、もうちょっとわかりやすいメッセージが嬉しいなぁと思います。xcodeさん。
普段、こういったC言語と近いところの言語を使っていないこともあり、8ビット整数が原因だなんて思いもよりませんでした。
せっかくなのでPlaygroundでも試してみました。
EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, ...
どうやら、何かがおかしいという事を知るくらいにしかメッセージは得られないようです。