Append NSInteger to NSMutableData

前端 未结 1 1697
执笔经年
执笔经年 2021-01-11 13:52

How do you append a NSInteger to NSMutableData. Something allong the lines of...

NSMutableData *myData = [[NSMutableData alloc] init];
NSInteger myInteger =          


        
1条回答
  •  生来不讨喜
    2021-01-11 14:15

    Pass the address of the integer, not the integer itself. appendBytes:length: expects a pointer to a data buffer and the size of the data buffer. In this case, the "data buffer" is the integer.

    [myData appendBytes:&myInteger length:sizeof(myInteger)];
    

    Keep in mind, though, that this will use your computer's endianness to encode it. If you plan on writing the data to a file or sending it across the network, you should use a known endianness instead. For example, to convert from host (your machine) to network endianness, use htonl():

    uint32_t theInt = htonl((uint32_t)myInteger);
    [myData appendBytes:&theInt length:sizeof(theInt)];
    

    0 讨论(0)
提交回复
热议问题