0

来自 python 我可以做这样的事情。

values = (1, 'ab', 2.7)
s = struct.Struct('I 2s f')
packet = s.pack(*values)

我可以用 python 非常简单地将任意类型打包在一起。在 Objective C 中执行此操作的标准方法是什么?

4

2 回答 2

1

不是很清楚一个问题,但也许你正在寻找一个(打包结构)?

__attribute__((packed)) struct NetworkPacket {
    int integer;
    char character;
};
于 2013-03-07T19:30:10.563 回答
1

使用 C 结构是正常的方法。例如:

typedef struct {
    int a;
    char foo[2];
    float b;
} MyPacket;

将为 int、2 个字符和一个浮点数定义一个类型。然后,您可以将这些字节解释为用于写入的字节数组:

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)
于 2013-03-07T19:30:21.687 回答