ios23- 文件下载(同步和异步)
1.第一步:创建一个单例视图
#import <UIKit/UIKit.h>
@interface ios23_downViewController : UIViewController<NSURLConnectionDelegate,NSURLConnectionDataDelegate>{
NSMutableData *connectionData;
}
-(IBAction)tongbu;
-(IBAction)yibu;
@property (nonatomic,retain) NSMutableData *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];
) {
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{
) {
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
ios23- 文件下载(同步和异步)的更多相关文章
- .NET同步与异步之相关背景知识(六)
在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...
- 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型
1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...
- 同步与异步 & 阻塞与非阻塞
在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 一.同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用 ...
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
- .NET 同步与异步之封装成Task(五)
本随笔续接:.NET 实现并行的几种方式(四) 前篇随笔已经介绍了几种可以实现并发的方式,其中异步方法.是最简便的方式.而 异步方式是基于 Task 和 async修饰符和await运算符实现的. 换 ...
- 网络IO之阻塞、非阻塞、同步、异步总结
网络IO之阻塞.非阻塞.同步.异步总结 1.前言 在网络编程中,阻塞.非阻塞.同步.异步经常被提到.unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一 ...
- python学习笔记-(十四)I/O多路复用 阻塞、非阻塞、同步、异步
1. 概念说明 1.1 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可 ...
- ASP.NET WebAPi(selfhost)之文件同步或异步上传
前言 前面我们讲过利用AngularJs上传到WebAPi中进行处理,同时我们在MVC系列中讲过文件上传,本文结合MVC+WebAPi来进行文件的同步或者异步上传,顺便回顾下css和js,MVC作为客 ...
- socket阻塞与非阻塞,同步与异步、I/O模型,select与poll、epoll比较
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就 ...
- WCF的同步和异步(以WPF连接为例)
2016-06-0711:05:44 在学习WCF时,学到WCF服务的同步和异步. 我理解的同步是: 当WCF服务是同步执行时,程序只有一条线程,代码只能按顺序一步一步来执行,当执行客户端/服务端某方 ...
随机推荐
- 同步fifo的verilogHDL设计实例
原创 设计一个fifo,输入16bit,输出16bit的data,寻址宽度5bit,有空满标志. top 层如下所示: /* date : 2014/10/14 version : modelsim ...
- 雅虎UED--无障碍网页设计
转自:http://www.sharetk.com/html/ued/Interactive-Design/1394.html 随着web使用量的增加和人们网络意识的增强,一些特殊用户开始被我们所关注 ...
- 不老的新丁 Python何以让人着迷
Python是一门美丽的语言.它简单易学,跨平台,而且运转良好.达成了许多Java一直求索的技术目标.一言以蔽之就是:其他的语言是与时代同 步,而Python则是未雨绸缪,而且计划得颇为出色.当然,这 ...
- Arduino 入门程序示例之一片 LED(2015-06-11)
概述 从点到线,从线到面.现在开始要来一片的 LED 了,一大波的 LED 正在到来! 示例程序 因为手头没有现成的模块,手头只有 595,所以这里每一个示例程序都是使用 74HC595 扩展 IO ...
- Qt学习之路(54): 自定义拖放数据对象
前面的例子都是使用的系统提供的拖放对象 QMimeData 进行拖放数据的存储,比如使用 QMimeData::setText() 创建文本,使用 QMimeData::urls() 创建 URL 对 ...
- Unix时间戳 POSIX时间 Unix时间
Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00 ...
- Gora_百度百科
Gora_百度百科 Gora 编辑 目录 1什么是Apache Gora 2为什么要使用Apache Gora 3Gora的一个源代 ...
- 求 n! (大数问题)----------HDOJ1042
以下只YY算法,c++实现,java大神绕道..... (1)位数的估计 显然对于大数(比如1000的阶乘)的阶乘我们找不到一个数据类型存放这个数,是在太大啦.... 那么现在来估计一 ...
- ajax异步请求实例
1. 问题分析 用户管理显示页面:usermanagement.tpl(也可以说是MVC中的V,即视图) 用户管理数据发送页面:usermanagement.php(也可以说是MVC中的M,即模型) ...
- 使用数组实现队列----《数据结构与算法分析---C语言描述》
一.h文件:my_que.h #ifndef _MY_QUE_H_ #define _MY_QUE_H_ struct QueRecord; typedef struct QueRecord* que ...