zoukankan      html  css  js  c++  java
  • ios23- 文件下载(同步和异步)

    1.第一步:创建一个单例视图

     

    #import <UIKit/UIKit.h>


    @interface ios23_downViewController : UIViewController<NSURLConnectionDelegate,NSURLConnectionDataDelegate>{

        NSMutableData *connectionData;

        

    }

    -(IBAction)tongbu;

    -(IBAction)yibu;

    @property (nonatomic,retainNSMutableData *connectionData;

    @end

    2

    //

    //  ios23_downViewController.m

    //  ios23-down

    //

    //  Created by  on 13-6-17.

    //  Copyright 2013 __MyCompanyName__. All rights reserved.

    //


    #import "ios23_downViewController.h"


    @implementation ios23_downViewController

    @synthesize connectionData;


    - (void)didReceiveMemoryWarning

    {

        [super didReceiveMemoryWarning];

        // Release any cached data, images, etc that aren't in use.

    }


    #pragma mark - View lifecycle

    -(IBAction)tongbu{

        NSLog(@"同步");

        NSError *err;

        //定义url

        NSString *url=@"http://172.22.65.38/new/1.doc";

        //构建NSURL

        NSURL *fileUrl=[NSURL URLWithString:url];

        //构建nsurlrequest

        NSURLRequest *request=[[NSURLRequest alloc]initWithURL:fileUrl];

        //建立连接

        NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err];

        if (data.length>0) {

            NSString *savePath=[[NSHomeDirectory()stringByAppendingPathComponent:@"documents"]stringByAppendingPathComponent:@"test.zip"];

            //当数据写入的时候

            if ([data writeToFile:savePath atomically:YES]) {

                NSLog(@"保存成功");

            }else{

                NSLog(@"保存失败");

            }

        }

                    

               

    }

    -(IBAction)yibu{

        NSLog(@"异步");

        NSError *err;

        //定义url

        NSString *url=@"http://172.22.65.38/new/1.doc";

        //构建NSURL

        NSURL *fileUrl=[NSURL URLWithString:url];

        //构建nsurlrequest

        NSURLRequest *request=[[NSURLRequest alloc]initWithURL:fileUrl];

        //建立连接

        NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err];

        NSURLConnection *conn=[[NSURLConnection alloc]initWithRequest:request delegate:self];

        //初始化connectionData;

        connectionData=[[NSMutableData alloc]init ];

        

    }

    //接受数据

    -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

        //获取服务器传递的数据

        [connectionData appendData:data];

    }

    //接收数据成功

    -(void)connectionDidFinishLoading:(NSURLConnection *)connection{

        if (connectionData.length>0) {

            NSString *savePath=[[NSHomeDirectory()stringByAppendingPathComponent:@"documents"]stringByAppendingPathComponent:@"test.zip"];

            //当数据写入的时候

            if ([connectionData writeToFile:savePath atomically:YES]) {

                NSLog(@"保存成功");

            }else{

                NSLog(@"保存失败");

            }

        }}

    //接收数据失败

    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{}

    - (void)viewDidLoad

    {

        [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    }


    - (void)viewDidUnload

    {

        [super viewDidUnload];

        // Release any retained subviews of the main view.

        // e.g. self.myOutlet = nil;

    }


    - (void)viewWillAppear:(BOOL)animated

    {

        [super viewWillAppear:animated];

    }


    - (void)viewDidAppear:(BOOL)animated

    {

        [super viewDidAppear:animated];

    }


    - (void)viewWillDisappear:(BOOL)animated

    {

    [super viewWillDisappear:animated];

    }


    - (void)viewDidDisappear:(BOOL)animated

    {

    [super viewDidDisappear:animated];

    }


    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

    {

        // Return YES for supported orientations

        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);

    }


    @end


  • 相关阅读:
    《Java并发编程实战》(五)---- 任务执行
    《Java并发编程实践》(四)---- 构建阻塞
    《Java并发编程实践》(三)---- 组合对象
    《Java8实战》(三)---- 重构测试和调试
    《Java核心技术》---- 多线程
    《Java并发编程实战》(二)---- 对象的共享
    《Java 8 实战》(三)---- 流
    《Java 8 实战》(二)—— Lambda
    《Java 8 实战》(一)——通过行为参数化传递代码
    Android_问卷调查
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3141054.html
Copyright © 2011-2022 走看看