NSData *theData --> Byte dataByte
方式一:
theData --> NSMutableData *allData
unsigned char *dataByte = CFDataGetMutableBytePtr((__bridge CFMutableDataRef)allData);
// unsigned char *就是Byte 的實(shí)際數(shù)據(jù)類型
方式二:
問度娘
Byte dataByte --> NSData *theData
方式一:
__block NSMutableData * dataM = [NSMutableData data];
[theData enumerateByteRangesUsingBlock:^(const void * _Nonnull bytes, NSRange byteRange, BOOL * _Nonnull stop) {
[dataM appendBytes:bytes length:byteRange.length];
}];
方式二:
問度娘
NSData *theData --> void *dataPtr
方式一:
theData --> NSMutableData *allData
void *dataPtr = allData.mutableBytes;
備注:這里不直接使用void *dataPtr = (void *)theData;
是因?yàn)閠heData.bytes為(const Void *)類型,為了避免精度丟失盡可能使用同一數(shù)據(jù)類型
方式二:
待產(chǎn)...
void * --> NSData
查看NSData的相關(guān)文檔即可
NSData *theData --> NSString *dataStr
OC中目前這種方式最靠譜:
theData --> NSMutableData *dataM
char *pChar = (char *)dataM.mutableBytes;
char arrayChar[33];// char數(shù)組的長(zhǎng)度 = theData.length + 1,
for (int i = 0; i < theData.length; i ++) {
arrayChar[i] = pChar[i];
}
arrayChar[32] = '\0';
dataStr = [NSString stringWithUTF8String:arrayChar];
NSData *theData --> int numInt
方式一:
theData --> NSMutableData *dataM
int *intArr = (int *)dataM.mutableBytes;
numInt = intArr[0];
方式二:(這種方式僅適用小端)
theData --> NSMutableData *dataM
int *intArr = (int *)dataM.mutableBytes;
int numInt = CFSwapInt32(* intArr);