Roh*_*wan 2 iphone image objective-c
我尝试通过URL加载图像视图,从网上获取了大量代码.不幸的是,我尝试的解决方案都没有为我工作,我得到了非常奇怪的错误.我正在获取图像数据,但没有来自此NSData的图像.我使用下面的代码和一个示例URL,它可以工作,给我代表的图像.但是,当我将其切换为使用我的实际URL时,我遇到了问题,因为它似乎正在尝试创建/返回一个太大的图像.这是我的代码:
NSString *urlString = [[[_xmlDictionary objectForKey:@"response"] objectForKey:@"movie"] objectForKey:@"poster"];
NSArray *parts = [urlString componentsSeparatedByString:@"\""];
urlString = [parts objectAtIndex:1];
urlString = [urlString stringByAppendingFormat:@"/"];
urlString = [urlString
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//NSURL * imageURL = [NSURL URLWithString:urlString];
NSLog(@"URL:%@",urlString);
NSURL * imageURL = [NSURL URLWithString:urlString];
NSData * imageData = [[NSData alloc] initWithContentsOfURL:imageURL];
UIImage * image = [[UIImage alloc] initWithData:imageData];
m_imageView = [[UIImageView alloc] initWithImage:image];
m_imageView.frame = CGRectMake(10, 10,300,300);
[self.view addSubview:m_imageView];
[imageData release];
[image release];
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助,提前谢谢.
Par*_*att 13
您可以将您的响应从您的URL转换为NSData,然后使用
NSURL *url = [NSURL URLWithString:@"<YOUR URL STRING HERE>"];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
UIImage *tmpImage = [[UIImage alloc] initWithData:data];
yourImageView.image = tmpImage;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
编辑:
另外,为了使它在后台工作,你应该以异步方式使用一个单独的线程调用它,这样它就不会阻塞你的主线程,如下所示.
[NSThread detachNewThreadSelector:@selector(downloadAndLoadImage) toTarget:self withObject:nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21652 次 |
| 最近记录: |