iPhone:苹果开发网络编程知识总结 使用NSConnection下载数据

来源:互联网 发布:python c 混合编程 编辑:程序博客网 时间:2024/05/29 10:43

  二:使用NSConnection下载数据

  1.创建NSConnection对象,设置委托对象

  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[self urlString]]];

  [NSURLConnection connectionWithRequest:request delegate:self];

  2. NSURLConnection delegate委托方法

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

  - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

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

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

  3. 实现委托方法

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

  // store data

  [self.receivedData setLength:0]; //通常在这里先清空接受数据的缓存

  }

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

  /* appends the new data to the received data */

  [self.receivedData appendData:data]; //可能多次收到数据,把新的数据添加在现有数据最后

  }

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

  // 错误处理

  }

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

  // disconnect

  [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

  NSString *returnString = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding];

  NSLog(returnString);

  [self urlLoaded:[self urlString] data:self.receivedData];

  firstTimeDownloaded = YES;

  }

0 0
原创粉丝点击