NSURLRequest 同步和异步

原创 2012年03月26日 18:06:38

同步下载:

-(void)downloadSynJarFiles

{

    NSString *urlAsString = @"http://192.168.1.196:8080/PlaceNaviServer/WEB-INF/lib/activation.jar";---要下载的全路径名

    NSURL *url = [NSURL URLWithString:urlAsString];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSError *error = nil;

    

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

    /*下载的数据*/

    if (data!=nil) {

        NSLog(@"下载成功");

        if ([data writeToFile:@"/Users/sunningning/Desktop/activation.jar" atomically:YES]) {--下载到目的路径名

            NSLog(@"保存成功!");

        }

        else

        {

            NSLog(@"保存失败!");

        }

    }

    else{

        NSLog(@"%@",error);

    }

}



异步下载:

//异步

-(void)downloadAsnJarFiles

{

    NSString *urlAsString = @"http://192.168.1.196:8080/PlaceNaviServer/WEB-INF/lib/activation.jar";

    NSURL *url = [NSURL URLWithString:urlAsString];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSMutableData *data = [[NSMutableData alloc]init];

    self.connectionData = data;

    [data release];

    NSURLConnection *newConnection = [[NSURLConnection alloc]

                                      initWithRequest:request delegate:self

                                      startImmediately:YES];

    self.connection = newConnection;

    [newConnection release];

    if (connection !=nil) {

        NSLog(@"Successfully create the connection");

    }

    else{

        NSLog(@"can not create the connection!");

    }

    

}


-(void)connection:(NSURLConnection *)connection 

    didFailWithError:(NSError *)error

{

    NSLog(@"an error happened!");

    NSLog(@"%@",error);

}


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

{

    NSLog(@"receive data");


    [self.connectionData  appendData:data];--这里才真正意义的取值和赋值

}


-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    NSLog(@"haha----");

    /*下载数据*/

    if ([self.connectionData writeToFile:@"/Users/sunningning/Desktop/activation.jar" atomically:YES]) {--保存到目的路径

        NSLog(@"保存成功!");

    }

    else

    {

        NSLog(@"保存失败!");

    }

    

    /*处理data*/

}


-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

    [self.connectionData setLength:0];

}


- (void)viewDidUnload

{

    [super viewDidUnload];

    // Release any retained subviews of the main view.

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

    [self.connection cancel];//取消连接

    self.connectionData = nil;//属性

    self.connection = nil;//属性

}




同步和异步,区别

同步: 同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不...
  • Ideality_hunter
  • Ideality_hunter
  • 2016年12月04日 11:20
  • 8874

纵说“同步”与“异步”

纵说“同步”与“异步” 说明:这里只是为了强调两个概念,同步和异步的含义。在数字电路中通常指的是有无同步时钟信号,如果有同步时钟,就称为同步,没有则称为异步。比如同步串行通信与异步串行通信,SDRAM...
  • LG1259156776
  • LG1259156776
  • 2015年10月14日 16:06
  • 1650

程序同步与异步的区别

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。   异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。   ---------------...
  • jk110333
  • jk110333
  • 2013年05月28日 11:04
  • 14960

Http 同步和异步的区别

转自:http://kevinpeng.javaeye.com/blog/677797  举个例子:普通B/S模式(同步)AJAX技术(异步)  同步:提交请求...
  • qq_23217629
  • qq_23217629
  • 2016年08月03日 09:47
  • 2521

异步存储器接口和同步存储器

http://hi.baidu.com/lisuo/blog/item/9495940afd213e1794ca6b7d.html http://forum.eet-cn.com/FORUM_POS...
  • jinn3
  • jinn3
  • 2011年11月14日 16:32
  • 1402

同步串口和异步串口的区别及使用情况

在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信。而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。   1、异步串行方式的特点   所谓异步通信,是指数...
  • seashine_yan
  • seashine_yan
  • 2017年05月05日 10:56
  • 3840

Java常见的同步和异步的区别、特点、联系

同步:发送一个请求,等待返回,然后再发送下一个请求  异步:发送一个请求,不等待返回,随时可以再发送下一个请求  同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改...
  • daguairen
  • daguairen
  • 2016年09月12日 17:20
  • 1942

js中的同步和异步的个人理解

你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流...
  • qq_22855325
  • qq_22855325
  • 2017年06月09日 15:09
  • 6968

同步与异步区别

1、我们的生活中存在着很多同步异步的例子。  比如:你叫我去吃饭,我听到了就立刻和你去吃饭,如果我们有听到,你就会一直叫我,直到我听见和你一起去吃饭,这个过程叫同步;异步过程指你叫我去吃饭,然后你就...
  • bigpudding24
  • bigpudding24
  • 2015年10月28日 00:20
  • 737

(java学习)关于对java中的同步和异步的理解

关于java中的同步和异步的区别,对于我这种java基础比较薄弱的人来说,一直没搞清楚他在代码中是怎么样提现的,也对这方面不敏感,平时写代码也就敲敲方法,然后遇到了考核,就让我们谈谈同步和异步,当时就...
  • Jack_YWJ
  • Jack_YWJ
  • 2016年08月06日 15:41
  • 3008
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NSURLRequest 同步和异步
举报原因:
原因补充:

(最多只允许输入30个字)