2014-01-21 3 views
0

Как я могу конвертировать long long (8 байт), int (4 байта), short (2 байта), Byte (1 байт) и NSString в массив байтов (NSData), чтобы отправить его по Интернету ?Преобразование нескольких типов данных NSData объективном C

т.е., как я могу преобразовать их в байтах:

long long currentTime = [[NSDate date] timeIntervalSince1970];

int databaseVersion = [SqliteUtils getDatabaseVersion];

Byte type = 2

и т.д ...

Спасибо.

+0

Как вы хотите отправить их? GameKit, TCP-соединение, websocket, JSON, HTTP? Это между двумя устройствами iOS или между iOS и сервером? –

+0

Спасибо за просьбу Гжегожа, я хочу, чтобы они через Http POST –

ответ

1

Для примитивных типов:

int a = 10; 
NSData *data = [NSData dataWithBytes:&a length:sizeof(a)]; 

Для NSString:

NSData *data = [@"string" dataUsingEncoding:NSUTF8StringEncoding]; 
+0

подумали, как я могу зашифровать эти 'данные', используя побитовое' XOR' с другим ключом NSData? Я не знаю, как перечислить эти данные. 'enumerateByteRangesUsingBlock:' не работает, возможно, я сделал что-то неправильно. –

0

Использование

[NSData dataWithBytes:&currentTime length:sizeof(currentTime)]; 
0

Возможно вы ищете NSKeyedArchiver и NSKeyUnarchiver. Концепция называется сериализацией данных или сортировкой. В основном это позволяет вам сериализовать объект Objective-C для получения объекта NSData.

Смежные вопросы