目标C:uint32_t存储为String,需要读取为uint32_t

时间:2011-06-24 12:04:09

标签: objective-c uicolor uint32

我将颜色值存储在iPad应用程序的数据库中,该应用程序需要带有颜色的图例。每个条目都有自己的颜色值,从十六进制值派生。基本上,我的颜色都是这样的:0X ######。我有一些函数可以取这个值,作为uint32_t,然后把它变成我需要的颜色。但是,我将值存储为String。

我需要做的是将此字符串转换为uint32_t。我需要“0X ######”等于0X ######,如果这是有道理的。我知道这可能是不可能的,在这种情况下我将不得不找到另一种解决方案。

2 个答案:

答案 0 :(得分:2)

您可以使用NSScanner

NSScanner * scanner = [NSScanner scannerWithString:@"0XAABBCC"];
uint32_t val;
[scanner scanHexLongLong:&val];

答案 1 :(得分:1)

我得到了这段代码,这将在我的代码中起作用,

NSScanner * scannered = [NSScanner scannerWithString:colorHex];

    uint32_t scanedVal;
    [scannered scanHexLongLong:(unsigned long long *)&scanedVal];
    NSLog(@"scanner _____%u",scanedVal);