2014年08月16日11:15:54
主要注意的时异步。
//
// ViewController.m
// sendAsynchronousRequestAPP
//
// Created by apple on 14-8-16.
// Copyright (c) 2014年 xq. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://a.hiphotos.baidu.com/image/w%3D310/sign=e78c8c64d300baa1ba2c41ba7711b9b1/d043ad4bd11373f0fab32e17a60f4bfbfaed04ad.jpg"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSLog(@"+++++++++++");
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError){
if (connectionError) {
NSLog(@"error");
return ;
}
else if (((NSHTTPURLResponse *)response).statusCode == 200)
{
[data writeToFile:@"Users/apple/Desktop/1.jpg" atomically:YES];
NSLog(@"下载完成");
}
}];
NSLog(@"---------");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
运行结果:
2014-08-16 11:09:24.469 sendAsynchronousRequestAPP[56219:2399352] +++++++++++
2014-08-16 11:09:24.479 sendAsynchronousRequestAPP[56219:2399352] ---------
2014-08-16 11:09:24.750 sendAsynchronousRequestAPP[56219:2399352]下载完成
可以看到执行的顺序不是顺序的。
sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError){}; 这方法其实是封装了使用协议里那4个方法。