I am having trouble adding 3 bits to the left side of nsdata (at the start). Here is the java code I am trying to convert to iOS
public byte[] getMessageInFormat(final int MessageType, final int MessageNum, final int MessageNum2, byte[] rawMessage){
byte[][] result = null;
byte[] byteStream = new byte[rawMessage.length + 3];
byteStream[0] = (byte) MessageType;
byteStream[1] = (byte) MessageNum;
byteStream[2] = (byte) MessageNum2;
for (int i=0; i<rawMessage.length; i++)
{
byteStream[3+i] = rawMessage[i];
}
return byteStream;
}
This doesn't work
NSData *rawMessage = [@"hello world" dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData * byteStream = [[NSMutableData alloc] init];
[byteStream appendBytes:&MessageType length:sizeof(MessageType)];
[byteStream appendBytes:&MessageNum length:sizeof(MessageNum)];
[byteStream appendBytes:&MessageNum2 length:sizeof(MessageNum2)];
[byteStream appendData:rawMessage];
[byteStream appendBytes:&MessageType length:sizeof(MessageType)];
Did not work because MessageType is an int and replacing "size of" to 1 works
[byteStream appendBytes:&MessageType length:1];