Цель C: uint32_t хранится как строка, нужно читать как uint32_t - PullRequest
1 голос
/ 24 июня 2011

Я храню значения цветов в базе данных для приложения для iPad, которому нужна легенда с цветами в нем.Каждая запись имеет свое собственное значение цвета, полученное из шестнадцатеричного значения.В основном все мои цвета выглядят так: 0X ######.У меня есть функции, которые могут принять это значение как uint32_t и превратить его в нужный мне цвет.Однако я сохраняю значение в виде строки.

Что мне нужно сделать, это преобразовать эту строку в uint32_t.Мне нужно, чтобы "0X ######" равнялся 0X ######, если это имеет смысл.Я знаю, что это может быть невозможно, и в этом случае мне придется искать другое решение.

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Вы можете использовать NSScanner для этого.

NSScanner * scanner = [NSScanner scannerWithString:@"0XAABBCC"];
uint32_t val;
[scanner scanHexLongLong:&val];
1 голос
/ 28 августа 2013

Я получил этот код, это будет работать в моем коде,

NSScanner * scannered = [NSScanner scannerWithString:colorHex];

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