结构体和NSData转换

定义结构体(结构体定义的时候注意32和64位系统的不同)

数据类型 和 结构体的 sizeof() -- 32和64位系统

struct   MEDIAHEAD
{
    int  start;
    int  mediaType;
    long long  dataLength;
    long long  time;
    int  headLength;
    int  end;
};

结构体初始化并转换NSData

NSDate* dat1 = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval time=[dat1 timeIntervalSince1970]*1000;
struct MEDIAHEAD mediaHead={100,1,10000,time,40,100};
NSData * msgData = [[NSData alloc]initWithBytes:&mediaHead length:sizeof(mediaHead)];
NSLog(@"结构体data:msgData = %@",msgData);

输出

结构体data:msgData = <64000000 01000000 10270000 00000000 ac4a812d 5f010000 28000000 64000000>

NSData转换为结构体

struct  MEDIAHEAD  infoStruct2;
[msgData getBytes:&infoStruct2 length:sizeof(infoStruct2)];
NSLog(@"\ninfoStruct2.start = %d \ninfoStruct2.mediaType = %d \ninfoStruct2.dataLength = %zi \ninfoStruct2.time = %zi \ninfoStruct2.headLength = %d \ninfoStruct2.end = %d",infoStruct2.start,infoStruct2.mediaType,infoStruct2.dataLength,infoStruct2.time,infoStruct2.headLength,infoStruct2.end);

输出

infoStruct2.start = 100 
infoStruct2.mediaType = 1 
infoStruct2.dataLength = 10000 
infoStruct2.time = 1508296968876 
infoStruct2.headLength = 40 
infoStruct2.end = 100
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,711评论 30 472
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,259评论 0 7
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,849评论 0 4
  • @[c++|struct] 今天在编程中碰到一个坑,搞的调试了半天,最后发现程序中在写数据和读取数据时结构体定义不...
    drybeans阅读 3,903评论 1 11
  • (六) 当那辆宝马车停到汤国庆家楼下时,看着那沉重的车身,汤国庆的心里充满了喜悦,好个乖乖,他要什么,浙江老板就得...
    苍穹之舞阅读 322评论 0 0

友情链接更多精彩内容