2014-03-06 45 views
0

得到的字节数组,我试图让包含图像的字节,这样一个字节数组:我需要从图像

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"]; 
NSData *data = [NSData dataWithContentsOfFile:filePath]; 
unsigned char *bytesArray = data.bytes; 
NSUInteger lengthOfBytesArray = data.length; 

接下来,我尝试将这些值复制到一个数组。

if (data.length>0) 
    { 
     NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:data.length]; 
     for (int i = 0; i<data.length; i++) { 
      unsigned char byteFromArray = bytesArray[i]; 
      [array addObject:[NSValue valueWithBytes:&byteFromArray objCType:@encode(unsigned char)]]; 

     } 
    } 

最后在调试中我收到了空对象数组。他们有内存地址但没有值(NSConcreateValue类型)。同样在调试区域,我检查了byteFromArray,它是一个'(unsigned char)'P'。我选择了错误的方式从图像中获取字节数组,还是我的代码错了?

回答

0

尝试与此

for (int i = 0; i<data.length; i++) 
     [array addObject:[NSNumber numberWithUnsignedChar:bytesArray[i]]]; 

而且更换此

for (int i = 0; i<data.length; i++) { 
     unsigned char byteFromArray = bytesArray[i]; 
     [array addObject:[NSValue valueWithBytes:&byteFromArray objCType:@encode(unsigned char)]]; 
    } 

,我建议加入的NSLog只显示data.length看到多少个元素被添加到阵列中。