CGRectやCGSizeなどを手軽にLogに出力する方法

UIViewやUIImageなどを扱う時、よくCGRectやCGSizeをLogに書きだしたりしたくなることがあります。 そんなとき、毎回

1
NSLog(@"rect : %f %f %f %f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);

と書くのはかなり手間です。 文字が長いので、書くだけで気合いを使い果たしてしまいそうです。 マクロで定義しちゃえば簡単に書けるようにはなりますが、あまりマクロに詳しくない人もいると思います。 そこで、Appleが準備しているほうのマクロを紹介しようと思います
■NSStringFromXXXマクロ NSStringにはNSStringFromXXXといったタイプのマクロがあります。 これらを使うと、

1
NSLog(@"rect : %@", NSStringFromCGRect(rect));

と書けるようになります。 前と比べれば書く量が半分以下ですし、補完で一発なのでだいぶ楽になると思います。 NSStringFromXXXのマクロは次の9種類があります

  • NSStringFromCGAffineTransform
  • NSStringFromCGPoint
  • NSStringFromCGRect
  • NSStringFromCGSize
  • NSStringFromClass
  • NSStringFromProtocol
  • NSStringFromRange
  • NSStringFromSelector
  • NSStringFromUIEdgeInsets

ちなみにこれらのNSStringFromXXXでNSStringに変換したものはXXXFromStringで逆変換ができます。 ちょっとしたことですが、使用頻度が高いと思いますのでぜひ使ってみてください。