我想在 objective-c 中创建一个字节数组,但我找不到Java的ByteArrayOutputStream和DataOutputStream的等效代码。
例如
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
dos.writeLong(counter); //counter is a long data type for eg 1165620611
dos.flush();
byte[] data = bos.toByteArray();
return data;
这段代码实际上返回了八个字节的数组...这是java中的输出
[0,0,0,0,69,121,-11,-125]
这正是我在 objective-c 中想要的。
最佳答案
// #1 long to char array
long l = 1165620611;
char bytes[sizeof(long)];
memcpy(bytes,&l,sizeof(l));
// #2 char array to nsdata
int size = sizeof(bytes)/sizeof(char);
NSData *data = [NSData dataWithBytes:bytes length:size];
// #3 nsdata to char array
char buffer[size];
[data getBytes:buffer length:size];
// #4 prints char array: 0 0 0 0 69 121 -11 -125
while (0<size--) {
NSLog(@"%d",buffer[size]);
}
完全不需要NSData,您可以跳过步骤2和#3。
关于ios - 想要在 objective-c 中创建字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314114/