NSData转Byte、Byte转NSData

NSData转Byte、Byte转NSData

NSData提供可以储存任意字元资料的物件,它提供了介面来使用储存的资料,所以程式在物件的环境中会更方便,记忆体管理也更容易,不过有时候与C程式要互通时,还是必需要转成Byte方式给C程式使用,所以下面将针对这两种型别转换做介绍。

NSData 转 Byte

这里假设有个档案为danny.bin,我们利用NSData将档案读入并且转成Byte阵列,这里要注意的是,在C里面并没有Byte的类型,而是用unsigned char的方式。

//-----------start-----------
    unsigned char *cData;
    NSData* nsData=[NSData dataWithContentsOfFile:@"danny.bin"];
    cData = malloc([nsData length]);
    [nsData getBytes:cData];
//------------end------------

Byte 转 NSData

再利用上述转成Byte阵列的cData指标当内容再转成NSData类型的nsData1

//-----------start-----------
 NSData* nsData1=[NSData dataWithBytes:cData length:sizeof(cData)];
//------------end------------