2014-12-06 3 views
0

Я пытаюсь преобразовать ASCII в hex. Вот моя функция.Функция ascii to hex компилируется в xcode, но не theos

NSString *asciiToHex(NSString *input) { 
    NSUInteger inputLength = [input length]; 
    unichar *chars = malloc(inputLength * sizeof(unichar)); 
    [input getCharacters:chars]; 
    NSMutableString *hexString = [[NSMutableString alloc] init]; 
    for (NSUInteger i = 0; i < inputLength; i++) { 
     [hexString appendFormat:@"%02x", chars[i]]; 
    } 
    return hexString; 
} 

Он работает в Xcode, но если я пытаюсь скомпилировать его в проекте Теос я получаю эту ошибку

error: cannot initialize a variable of type 'UInt8 *' 
     (aka 'unsigned char *') with an rvalue of type 'void *' 
    UInt8 *outBytes = malloc(sizeof(UInt8) * ((inLength/2) + 1)); 
     ^

Как я могу получить Теос скомпилировать его или как я переписать функцию?

ответ

0

malloc возвращает указатель типа void*. Typecast rsvalue to unichar следующим образом:

unichar *chars = (unichar*)malloc(inputLength * sizeof(unichar));