Конвертировать массив без знака в NSData и обратно - PullRequest
30 голосов
/ 02 декабря 2011

Как преобразовать массив без знака в NSData в цели c?

Это то, что я пытаюсь сделать, но это не работает. Буфер - мой массив без знака.

NSData *data = [NSData dataWithBytes:message length:length];

1 Ответ

64 голосов
/ 02 декабря 2011

Вы можете просто использовать этот метод класса NSData

+ (id)dataWithBytes:(const void *)bytes length:(NSUInteger)length

Что-то вроде

NSUInteger size = // some size
unsigned char array[size];
NSData* data = [NSData dataWithBytes:(const void *)array length:sizeof(unsigned char)*size];

Затем вы можете получить массив обратно вот так (если вы знаете, что это правильный тип данных)

NSUInteger size = [data length] / sizeof(unsigned char);
unsigned char* array = (unsigned char*) [data bytes];
...