16 進数の文字列 (NSString) を数値型 (int) に変換する
NSColor が気の利かない子なので、#FFFFFF など 16 進数の色指定を各要素ごと自前で解析することに。
@"FF" のように、16 進数を表した NSString は、NSScanner の ScanHexInt: メソッドで、(unsigned)int 型の 255 に変換できます。
文字列は @"0xFF", @"0XFF" のほか、@"ff" や @"fF" といった書き方でも構いません。
unsigned int result; [[NSScanner scannerWithString:@"ff"] scanHexInt:&result]; NSLog(@"result: %d", result); // 255
また、参考元のページでは、以下のように NSString をカテゴリでクラス拡張する方法もありました。
@interface NSString (HexIntValue) - (unsigned int)hexIntValue; @end @implementation NSString (HexIntValue) - (unsigned int)hexIntValue { unsigned int result; [[NSScanner scannerWithString:self] scanHexInt:&result]; return result; } @end // // [@"ff" hexIntValue] で 16 進数化できるようになる //