NSScannerを利用して16進数の文字列を10進数の数値に変換
16進数の文字列から10進数の数値を得る方法を探していたら、NSScannerを使うと便利だという情報を発見。
NSString *colorCode = @"0x80ffc4"; unsigned int rgb[3]; for (int i = 0; i < 3; i++) { NSString *component = [colorCode substringWithRange:NSMakeRange(i * 2, 2)]; NSScanner *scanner = [NSScanner scannerWithString:component]; [scanner scanHexInt:&rgb[i]]; }
NSScannerの使い方は『詳解iOS5プログラミング』の2.3.1節「文字列と数値の変換」で触れられており、そこではscanUpToString:intoString:によるスキャン位置の移動についても説明されている。
- 作者: 沼田哲史
- 出版社/メーカー: 秀和システム
- 発売日: 2011/12
- メディア: 単行本
- 購入: 1人 クリック: 58回
- この商品を含むブログ (10件) を見る
ちなみに、数値から文字列への変換は、NSStringクラスのstringWithFormat:で可能だ。