为什么这个图片不会出现?使用NSData和initWithData

时间:2011-03-11 20:49:06

标签: iphone ipad uiimage nsdata nsurl

NSURL* urlEx = [NSURL URLWithString:@"Pacific_Map.png"];
NSData* mapExIMGData = [[NSData alloc] initWithContentsOfURL: urlEx];

UIImage* imgEx = [[UIImage alloc] initWithData:mapExIMGData];

mapImageViewEx.image = imgEx;

如果我替换mapImageViewEx.image = imgEx; with mapImageViewEx.image = [UIImage imageNamed:@“Pacific_Map.png”];它有效,但我不想使用imageNamed。

2 个答案:

答案 0 :(得分:2)

那是因为imageNamed知道扫描文件的位置,但initWithContentsOfURL需要完整路径。使用

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"Pacific_Map" ofType:@"png"];
NSURL* urlEx = [NSURL fileURLWithPath:imagePath];
NSData* mapExIMGData = [[NSData alloc] initWithContentsOfURL: urlEx];

UIImage* imgEx = [[UIImage alloc] initWithData:mapExIMGData];

mapImageViewEx.image = imgEx;

答案 1 :(得分:1)

使用imageNamed有什么问题?无论如何,你可以使用initWithContentsofPath。

+ (UIImage *)imageWithContentsOfFile:(NSString *)path

告诉我们您要完成的更多内容。祝你好运,

詹姆斯

编辑:抱歉,我认为Pacific_Map.png只是一个占位符路径。与其他人发布的一样,如果您不打算使用imageNamed,则需要指明完整路径。