ios - 想要在 objective-c 中创建字节数组

标签 ios objective-c

我想在 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/

相关文章:

ios - 带有 NavigationBarHidden 的导航 Controller

iphone - 文本字段方式中的键盘如何向上移动 View

ios - 检查特定的手势识别器

objective-c - BOOL 应该使用什么格式说明符?

ios - 是否可以在没有 Swift 或 Objective-C 的情况下使用 Go 创建 iOS 应用程序?

iphone - 将十六进制字符串转换为int时出现奇怪的结果

objective-c - Objective C 中的目录大小

ios - 如何在本地存储 NSData

ios - FirebaseStorage 无法为元数据创建 downloadURL

iOS 8 : -[UITableViewWrapperView textField]: unrecognized selector sent to instance