URLConnection下载图片

ViewController.h

 1 #import <UIKit/UIKit.h>
 2 
 3 @interface ViewController : UIViewController
 4 <NSURLConnectionDataDelegate>
 5 {
 6     UIImageView* imageView;
 7     NSMutableData* imageData;
 8 }
 9 
10 @end

ViewController.m

 1 #import "ViewController.h"
 2 
 3 @implementation ViewController
 4 
 5 #pragma mark - viewDidLoad Event
 6 -(void)initImageViewFData
 7 {
 8     imageData = [[NSMutableData alloc] init];
 9     imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 240)];
10     [self.view addSubview:imageView];
11     [imageView release];
12 }
13 -(void)startDownloadFImage
14 {
15     NSString* str = @"http://192.168.88.8/sns/my/headimage.php?uid=865";
16     NSURL* url = [NSURL URLWithString:str];
17     
18     //建立一个请求,设置url,缓存,超时时间
19     NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0];
20     //发送同步请求
21     //NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
22     //异步请求
23     [NSURLConnection connectionWithRequest:request delegate:self];
24     //开始下载图片,什么时候知道下载完数据了
25 }
26 
27 #pragma mark - viewDidLoad
28 - (void)viewDidLoad
29 {
30     [super viewDidLoad];
31     //初始.h里的字段
32     [self initImageViewFData];
33     //开始下载图片
34     [self startDownloadFImage];
35 }
36 
37 
38 #pragma mark - NSURLConnectionDataDelegate
39 //下载完响应头,准备下载内容
40 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
41     [imageData setLength:0];
42     [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
43 }
44 //下载数据 , 多次调用
45 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
46     //追加数据
47     [imageData appendData:data];
48 }
49 //调用这个方法,证明下载完成
50 - (void)connectionDidFinishLoading:(NSURLConnection *)connection{
51     UIImage* image = [UIImage imageWithData:imageData];
52     imageView.image = image;
53      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
54 }
55 //下载失败
56 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
57     NSLog(@"下载失败");
58 }

 

posted on 2013-01-29 15:29  灰色的人  阅读(485)  评论(0编辑  收藏  举报

导航