来自python,我可以做这样的事情。
values = (1, 'ab', 2.7)
s = struct.Struct('I 2s f')
packet = s.pack(*values)
我可以使用python非常简单地将任意类型组合在一起。在Objective C中执行此操作的标准方法是什么?
答案 0 :(得分:1)
问题不太清楚,但也许你正在寻找一个(打包的结构)?
__attribute__((packed)) struct NetworkPacket {
int integer;
char character;
};
答案 1 :(得分:1)
使用C结构是正常的方法。例如:
typedef struct {
int a;
char foo[2];
float b;
} MyPacket;
将为int,2个字符和float定义类型。然后,您可以将这些字节解释为用于写入的字节数组:
MyPacket p = {.a = 2, .b = 2.7};
p.foo[0] = 'a';
p.foo[1] = 'b';
char *toWrite = (char *)&p; // a buffer of size sizeof(p)