文档章节

IOS 练习 之简单的文件下载

小鸡蹲蘑菇
 小鸡蹲蘑菇
发布于 2015/05/20 10:39
字数 254
阅读 11
收藏 0
//
//  ViewController.m
//  DownLoadBig
//
// 添加alertview并打印文件大小
// Storyboard添加progressview 
// 文件的大小可以从request中取出,也可以使用
// self.total = res.expectedContentLength
//
//  Created by apple on 15/5/5.
//  Copyright (c) 2015年 apple. All rights reserved.
//
#import "ViewController.h"
@interface ViewController () <NSURLConnectionDataDelegate,UIAlertViewDelegate>
@property (weak, nonatomic) IBOutlet UIProgressView *proView;
@property (nonatomic,strong) NSMutableData *fileData;
@property (nonatomic,copy) NSString *total;
@property (nonatomic,strong) UIAlertView *alert;
@end
@implementation ViewController
-(NSMutableData *)fileData
{
    
    if (_fileData == nil){
        
        _fileData = [NSMutableData data];
    }
    return _fileData;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.proView.progress = 0.0;
    
   
    // Do any additional setup after loading the view, typically from a nib.
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    
    NSURL *url = [NSURL URLWithString:@"http://125.39.68.200/files/2011000000F9723B/xiazai.888rj.com/Soft/T/Thunder_7.9.26.4824_XiaZaiBa.exe"];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    
    [NSURLConnection connectionWithRequest:req delegate:self];
//    NSLog(@"touch");
    
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
//    NSLog(@"jieshou");
//    NSLog(@"%@%",res.allHeaderFields[@"Content-Length"]);
     self.total= res.allHeaderFields[@"Content-Length"];
          
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    
    [self.fileData appendData:data];
    
    self.proView.progress = (double)self.fileData.length  / self.total.intValue;
    NSLog(@"%d%",self.fileData.length);
    
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *cachestr = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *filePath = [cachestr stringByAppendingPathComponent:@"Thunder_7.9.26.4824_XiaZaiBa.exe"];
    NSLog(@"%@",cachestr);
    
    [self.fileData writeToFile:filePath atomically:YES];
    
    NSString *totalstr = [ NSString stringWithFormat:@"软件总大小:%@",self.total];
    self.alert = [[UIAlertView alloc]  initWithTitle:@"下载完成" message:totalstr delegate:self cancelButtonTitle:@"ok"  otherButtonTitles: nil ];
    
    [self.alert show];
}
@end

© 著作权归作者所有

小鸡蹲蘑菇
粉丝 5
博文 68
码字总数 24144
作品 0
海淀
私信 提问
十八般武艺!移动应用开发者必备的18款利器

“工欲善其事,必先利其器”。身为一名移动应用的开发者,光有技术是不够的,必备的应用可以为您的开发工作如虎添翼。随着Android与iOS系统的不断更新换代,相关的的应用也层出不穷,本文推荐...

looen
2011/11/25
2.3K
3
10个优秀Objective-C和iOS开发在线视频教程

如果你自己开发iOS应用,你肯定会发现网上有很多资源。学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写。我们从海量视频和学习网站中整理出了我们认为...

mingxun
2014/05/09
193
0
iOS逆向工程- 学习整理(工具详解)

前言 一、逆向工程的要求 具备丰富的 iOS 开发经验 最好能非常熟悉 iOS 设备的硬件构成,iOS 系统的运行原理。 拿到任意一个 App 之后能够大致推断出它的项目规模和使用的技术,比如它的MVC模...

_小迷糊
2018/05/11
0
0
iOS高仿QQ侧滑控件、下载框架、动画效果、扫一扫、颜色变化、K线图等源码

iOS精选源码 仿京东"加入购物车"转场动画(http://www.code4app.com/thread-28162-1-1.html) ColorTool(颜色转换)(http://www.code4app.com/thread-29256-1-1.html) Swift 专业版K线(http://w......

sunnyaigd
2018/04/17
57
0
ios应用在企业内部分发遇到到问题(OAuth2.0授权码模式)

问题 最近遇到在企业内部分发iOS软件的时候,plist文件和ipa文件都不能下载安装的问题。安装苹果的官方文档:《通过网页服务器分发企业内部应用》。搭建了让企业内部员工下载的iOS安装包的服...

亚林瓜子
07/04
12
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.4K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
41
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部