2012-12-13 29 views
-1

我有一個C#代碼,其中字節複製到一個字節數組,從特定索引,如下面的例子說明:目標C等效爲CopyTo從在C#

string headerInfo = String.Format(source + "<>" + destination + "<>" + sessionId); 
headerInfo = headerInfo.TrimEnd('\n', '\0', '\r'); 
byte[] headerInfoBytes = Encoding.UTF8.GetBytes(headerInfo); 
byte[] headerInfoLength = BitConverter.GetBytes(headerInfo.Length); 

//create an byte Array with proper size. 
byte[] sendData = new byte[4 + 4 + headerInfoBytes.Length + dataContractBytes.Length]; 

headerInfoLength.CopyTo(sendData, 0); 
dataContractLengthBytes.CopyTo(sendData, 4); 
headerInfoBytes.CopyTo(sendData, 8); 
dataContractBytes.CopyTo(sendData, 8 + headerInfoBytes.Length); 
m_clientSocket.Send(sendData); 

我的問題是,如何可以achive的CopyTo以客觀的c方式?

回答

0

檢出this guide關於如何處理可變數據。

如果您特別需要索引部分,可以使用replaceBytesInRange:withBytes:。否則,只需附加數據:

NSString *headerInfo = [NSString stringWithFormat:@"%@<>%@<>%@", source, destination, sessionId]; 
NSData *headerData = [headerInfo dataUsingEncoding:NSUTF8StringEncoding]; 

NSMutableData *data = [NSMutableData dataWithCapacity:headerData.length + ...]; 
[data appendData:headerData];