我的问题与将来自 Web 服务的字节数组转换为 UIImage iPhone相同 。现在我将这些字节存储在 NSMutableArray 中。但是方法:
NSData *data = [NSData dataWithBytes:YOUR_BYTE_ARRAY length:ARRAY_LENGTH];
将 arrayOfBytes 作为参数。所以任何人都可以告诉我如何将这个数组转换为字节数组。我搜索了很多,但找不到相关的内容。
我的问题与将来自 Web 服务的字节数组转换为 UIImage iPhone相同 。现在我将这些字节存储在 NSMutableArray 中。但是方法:
NSData *data = [NSData dataWithBytes:YOUR_BYTE_ARRAY length:ARRAY_LENGTH];
将 arrayOfBytes 作为参数。所以任何人都可以告诉我如何将这个数组转换为字节数组。我搜索了很多,但找不到相关的内容。
不确定您是如何开始使用可变数组的。如果您使用 NSURLConnection,则委托将获得 NSData,因此您无需使用可变数组。考虑使用这样的连接异步块方法获取数据......
NSURLRequest *myRequest = // the request you've already got working to get image data
[NSURLConnection sendAsynchronousRequest:myRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (!error) {
// image from data with no intermediate mutable array or byte array
UIImage *image = [UIImage imageWithData:data];
}
}];
谢谢您的合作。但这对我没有帮助。经过长时间的研究,我找到了我的解决方案。我正在分享我的信息,以便其他人可以得到正确的答案。
NSArray *byteArray = [[NSArray alloc]init]; //strore all data here coming from server in byte formate
unsigned c = [byteArray count];
uint8_t *bytes = malloc(sizeof(*bytes) * c);
unsigned i;
for (i = 0; i < c; i++)
{
NSString *str = [byteArray objectAtIndex:i];
int byte = [str intValue];
bytes[i] = (uint8_t)byte;
}
NSData *data = [[NSData alloc]initWithBytes:bytes length:c];
UIImage *image = [UIImage imageWithData:data];
NSLog(@"image %@",image);