Вы можете просто использовать этот метод класса 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];