imageWithData 使用分析

UIImage *image = [UIImage imageWithData:data];

首先,我们要明白我们用这个方法的目的:利用imageWithData这个二进制方法主要是为了得到一个图片对象。

接下来分析一下我们常用的得到data的方法:

方法1:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"xxx.png" ofType:nil];

    NSData *data = [NSData dataWithContentsOfFile:path];

方法2:

    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrlStr]];


毫无疑问,由方法1而得到的data数据,经由[UIImage imageWithData:data]方法后,一定能得到一个图片对象。

而对于方法2,经由[UIImage imageWithData:data]方法后,并不一定得到一个图片对象


总结一句,并不是所有的data数据都能够得到图片对象的。

究其原因:[UIImage imageWithData:data];这个方法就是得到一个图片对象

方法1中xxx.png本来就是一个图片,故生成的data也是一个图片二进制

方法2中如果网络地址是一个纯图片的话,生成的data也是一个图片二进制,可以得到一个图片对象 

但是,网络地址是一个网页的话,生成的data不是有一个纯图片的二进制,姑图片对象为空。

你可能感兴趣的:(ios,Objective-C,NetWork,ios开发,uiimage)