2014-01-21 36 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

感謝Grzegorz,我希望他們通過Http POST –

回答

1

基本類型:

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

對於NSString

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

還有一個想法,我怎麼能用另一個'NSData'作爲密鑰來使用按位XOR'加密這個'data'?我不知道如何通過這些數據來枚舉。 'enumerateByteRangesUsingBlock:'不起作用,也許我做錯了什麼。 –

0

使用

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

也許你正在尋找NSKeyedArchiver和NSKeyUnarchiver。這個概念被稱爲數據序列化或編組。基本上它允許你序列化一個任意的Objective-C對象來獲得一個NSData對象