Objective c NSData到固定长度的NSData的NSMUTABLE数组
我试图从NSData中获取16字节的NSMUTABLEARRY,但没有成功。也许有人能给我指出正确的方向 例如: 输入:Objective c NSData到固定长度的NSData的NSMUTABLE数组,objective-c,nsdata,Objective C,Nsdata,我试图从NSData中获取16字节的NSMUTABLEARRY,但没有成功。也许有人能给我指出正确的方向 例如: 输入: 输出: 我试着这样做: NSMutableArray *blocks = [[NSMutableArray alloc]init]; for (NSUInteger i = 0; i <= [data length]; i=i+16) { unsigned char *byte = NULL; [data getBytes:byte range:NSMa
输出:
我试着这样做:
NSMutableArray *blocks = [[NSMutableArray alloc]init];
for (NSUInteger i = 0; i <= [data length]; i=i+16) {
unsigned char *byte = NULL;
[data getBytes:byte range:NSMakeRange(i, 16)];
NSData *temp = [[NSData alloc] initWithBytes:byte length:sizeof(byte)];
[blocks addObject:temp];
}
for (NSUInteger i = 0; i <= [data length] - 16; i = i + 16) {
NSData *temp = [data subdataWithRange:NSMakeRange(i, 16)];
[blocks addObject:temp];
}
NSMutableArray*块=[[NSMutableArray alloc]init];
对于(i=0;i)
将数据复制到由byte
指向的内存中,它不分配内存。复制数据会崩溃,因为byte==NULL
不指向有效内存。替换
unsigned char *byte = NULL;
借
应该可以解决问题,但请注意
NSData *temp = [data subdataWithRange:NSMakeRange(i, 16)];
更简单,根本不需要字节缓冲区
还要注意,for循环
for (NSUInteger i = 0; i <= [data length]; i=i+16)
将数据复制到由byte
指向的内存中,它不分配内存。复制数据会崩溃,因为byte==NULL
不指向有效内存。替换
unsigned char *byte = NULL;
借
应该可以解决问题,但请注意
NSData *temp = [data subdataWithRange:NSMakeRange(i, 16)];
更简单,根本不需要字节缓冲区
还要注意,for循环
for (NSUInteger i = 0; i <= [data length]; i=i+16)
哇..谢谢你的精彩解释和精彩回答。我确实从中学到了一些东西。再次感谢你。哇..谢谢你的精彩解释和精彩回答。我确实从中学到了一些东西。再次感谢你。