NSURLConnectionダウンロードファイル

4146 ワード

#import "ViewController.h"

@interface ViewController ()
{
    UITextField *textField;
    UIButton *button;
    UILabel *label;
    UILabel *label1;
    UIImageView *image1;
    UIImageView *image2;
    UIButton *button1;
    int flag;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    flag = 1;
    [self layout];

}
-(void)layout{
    // 
    textField = [[UITextField alloc]initWithFrame:CGRectMake(10, 40, 355, 35)];
    textField.layer.borderWidth = 2;
    textField.layer.borderColor = [UIColor blackColor].CGColor;
    textField.layer.cornerRadius = 7;
    textField.textAlignment = NSTextAlignmentCenter;
    textField.backgroundColor = [UIColor whiteColor];
    textField.text = @"http://c.hiphotos.baidu.com/zhidao/pic/item/b219ebc4b74543a930b783631e178a82b80114f4.jpg";
    button = [[UIButton alloc]initWithFrame:CGRectMake(30, 630, 315, 27)];
    [button setTitle:@" " forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button.layer.borderColor = [UIColor purpleColor].CGColor;
    button.layer.borderWidth = 2;
    button.layer.cornerRadius = 7;
    [button addTarget:self action:@selector(sendRequest) forControlEvents:UIControlEventTouchUpInside];
    label = [[UILabel alloc]initWithFrame:CGRectMake(10, 90, 70, 30)];
    label.layer.borderWidth = 2;
    label.layer.borderColor = [UIColor purpleColor].CGColor;
    label.layer.cornerRadius = 7;
    label.text = @"One";
    label.textAlignment = NSTextAlignmentCenter;
    label1 = [[UILabel alloc]initWithFrame:CGRectMake(10, 323, 70, 30)];
    label1.layer.borderWidth = 2;
    label1.layer.borderColor = [UIColor purpleColor].CGColor;
    label1.layer.cornerRadius = 7;
    label1.text = @"Two";
    label1.textAlignment = NSTextAlignmentCenter;

    image1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 122, 375, 200)];
    image1.backgroundColor = [UIColor brownColor];
    image2 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 354, 375, 220)];
    image2.backgroundColor = [UIColor brownColor];
    button1 = [[UIButton alloc]initWithFrame:CGRectMake(30, 600, 315, 27)];
    [button1 setTitle:@" " forState:UIControlStateNormal];
    [button1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button1.layer.borderColor = [UIColor purpleColor].CGColor;
    button1.layer.borderWidth = 2;
    button1.layer.cornerRadius = 7;
    [button1 addTarget:self action:@selector(clean) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:label];
    [self.view addSubview:label1];
    [self.view addSubview:textField];
    [self.view addSubview:button1];
    [self.view addSubview:button];
    [self.view addSubview:image2];
    [self.view addSubview:image1];
    
}
-(void)sendRequest{
    NSString *urlStr = textField.text;
    // 
    urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    // url
    NSURL *url = [NSURL URLWithString:urlStr];
    // 
    NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15];
    // 
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        // 
        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
        path = [path stringByAppendingPathComponent:@" 007.jpg"];
        [data writeToFile:path atomically:YES];
        
        if (flag%2==0) {
            
            image2.image = [UIImage imageWithData:data];
        }
        else {
            image1.image = [UIImage imageWithData:data];
        }
        
        flag++;
    }];
    
    
}
-(void)clean{
    image2.image = nil;
    image1.image = nil;
    textField.text = nil;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end