签名字节数组到UIImage

时间:2016-07-15 19:25:22

标签: objective-c uiimage bytearray nsdata

我正在尝试从Web服务生成的字节数组中显示图片。打印出如下所示的描述: (“-119”,80,78,71,13,10,26,10,0,0,0,13,3 ......) 从标题中可以清楚地看出它是用有符号整数编码的png。它是一个__NSCFArray,具有__NSCFNumber元素。

我在Objective-C中的代码(基于大量谷歌搜索):

NSData *data = [NSData dataWithBytes:(const void *)myImageArray length [myImageArray count]];
UIImage *arrayImage = [UIImage imageWithData:data];

我收到一个null UIImage指针。 我还尝试先将它转换为无符号NSNumbers,然后将其传递给NSData,尽管我可能没有正确地执行此操作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您不能简单地将NSNumber NSArray投射到二进制数据中。 NSNumberNSArray *bytes = @[@1, @2, @3]; NSMutableData *data = [NSMutableData dataWithLength:bytes.count]; for (NSUInteger i = 0; i < bytes.count; i++) { char value = [bytes[i] charValue]; [data replaceBytesInRange:NSMakeRange(i, 1) withBytes:&value]; } 都是对象;它们有自己的标题和内部结构,与原始的字节字符串不同。您需要逐字节地将其转换为以下行中的内容:

char

int8_t是已签名的<?php foreach ($r['result']['achievements']['0']['achievements'] as $item) { ?> <div class="achiev-title"><?php echo ', $item['title'], '; ?></div> <div class="description"><?php echo ', $item['description'], '; ?></div> <div class="criteria"> <?php if(!empty($item['criteria'])) { foreach ($item['criteria'] as $item2) { ?> <li><?php echo ', $item2['description'], '; ?></li> <?php } // $item2 loop ends ?> <?php } // if ends ?> </div> <?php } // $item loop ends ?> <br/> ,似乎是您正在使用的数据类型。它通常用于表示&#34; ASCII字符,&#34;但在C中,它通常也用于表示&#34;字节。&#34;