将字符串“ff0000”转换为目标c中的十六进制数

时间:2012-12-31 21:13:04

标签: objective-c parsing color-picker hex color-codes

我需要将来自UI的字符串输入转换为目标c中的十六进制数。该字符串是一个HTML颜色代码,如“ff0000”('#'将以图解方式处理),它应该转换为数字ff0000以提供颜色选择。或者,目标c中是否有颜色选择器?没有在xib对象中找到一个。

2 个答案:

答案 0 :(得分:14)

来自Objective C parse hex string to integer

unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"ff0000"];
[scanner scanHexInt:&result];

或使用“c”:

uint32_t value;
NSString *stringValue = @"ff0000";
const char *string = [stringValue cStringUsingEncoding:NSUTF8StringEncoding];
sscanf(string, "%x" , &value);

答案 1 :(得分:1)

您可以使用以下行进行转换。它只有一行代码:

NSString *hexString = @"01FFFFAB";
length = (UInt64)strtoull([sizeLine UTF8String], NULL, 16);
NSLog(@"The required Length is %d", length);

快乐编码!!!