преобразовать шестнадцатеричную строку в NSData - PullRequest
0 голосов
/ 13 сентября 2010

Как я могу преобразовать строку в шестнадцатеричном формате, чтобы извлечь из нее NSData и после этого UIImage внутри моего приложения для iPhone?

У меня есть строка (str), которая содержит значение типа X'FFD8FFE000104A46 .... 01010000010001000'.

Эта строка создается из XML-файла по методу:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
     str = [str stringByAppendingString:string];
}

Как получить изображение обратно из этой строки?

Заранее спасибо,

Андреа

Ответы [ 3 ]

0 голосов
/ 13 сентября 2010

Вы можете найти GTMStringEncoding полезным из Google Toolbox для Mac.

0 голосов
/ 05 июля 2012

мой пример кода, обновлен!

   -(NSData*)toString:(NSString*)uniStr
{
    int len=[uniStr length]/4;
    unichar *oux=alloca(len*sizeof(unichar));
    unichar *p = oux;

    for (int i=0; i<[uniStr length]/4; i++) {


        NSInteger first= i*4;
        NSUInteger a =toInde([uniStr characterAtIndex:first])<<4;//3 3c
        NSUInteger b =toInde([uniStr characterAtIndex:(first+1)]);//2
        NSUInteger c =toInde([uniStr characterAtIndex:(first+2)])<<12 ;//0 68
        NSUInteger d =toInde([uniStr characterAtIndex:(first+3)])<<8;//0

        unichar x = a+b+c+d;//十进制 3c68->683c
        memcpy(p, &x, 2);
        p++;

    }

    return [NSData dataWithBytes:oux length:len*2];
}

int toInde(int x)
{

    char b=0;
    sprintf(&b, "%c",a);
    return b;
}
0 голосов
/ 13 сентября 2010

Для преобразования NSData в NSString попробуйте "initWithData: encoding:"

Для преобразования NSData в UIImage попробуйте "imageWithData:"

...