周五的时候,有个新的需求,要下载脚本,帮助玩家自动打怪,应该也是挂机的意思吧!

  组长让我设计界面,让汤老师设计数据等。我觉得数据的挑战性更大一点,然后就接过来了。

  自己还没有形成互联网思维,所以弄了一天,真的是感觉头大。很多事情想不明白,脑袋懵里懵懂的,应该是锻炼的少。

  经过很多次,我觉得自己的处事方法不对,遇到很多难题,都是绕道走,或者是直接问同事,这样的现象不好;但是当自己去克服的时候,搜几篇博文,看上几遍,如果一开始,大概10分钟内没有解决我的问题,我就没有耐心继续看下去了,而且脑袋里也是蒙蒙的。

  这个现象不好,只能自己多做项目,多解决问题,遇见的多了,找到大概的解决思路,应该就好多了。

  言归正传,这个新的需求,就两点:1.下载脚本,下载完成后,将脚本放置到一个固定的位置;2.下载完成后,将结果传递给界面。

  相对简单一点,不需要去设置进度条,也不需要去暂时和断续下载,不过折腾的我头也很大。现在开始理一理。

  现在想想,自己写的代码是不是太简单了。先这样吧,明天如果感觉不行,再改吧

  1.单建了一个工具类,专门用做下载

  1.1 头文件

#import <Foundation/Foundation.h>

typedef void(^success)(NSString *str);

@interface DownloadTool : NSObject

+ (void)downloadWithURLStr:(NSString *)urlStr andSuccessBlock:(success)success;

@end

  1.2 .m文件

+ (void)downloadWithURLStr:(NSString *)urlStr andSuccessBlock:(success)success{
[[[NSURLSession sharedSession]downloadTaskWithURL:[NSURL URLWithString:urlStr] completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
if (!error) {
NSHTTPURLResponse * httpResponse = (NSHTTPURLResponse *)response;
if (httpResponse.statusCode == 200) { NSString * urlStr = response.URL.lastPathComponent;
NSLog(@"urlStr = %@\n",urlStr); if (urlStr == nil)return ; NSString * destinationPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",urlStr]]; [[NSFileManager defaultManager]moveItemAtPath:location.path toPath:destinationPath error:nil]; NSLog(@"\ndestinationPath = %@\n sourcePath = %@ \n response = %@\n",destinationPath,location.path,response);
if (success) {
success(destinationPath.lastPathComponent);
} }
}else{
NSLog(@"\nerror = %@\n",error);
} }] resume];

  2.调用下载方法

    NSString* str = @"http://pic1a.nipic.com/2008-09-05/200895134351570_2.jpg";
[DownloadTool downloadWithURLStr:str andSuccessBlock:^(NSString *str) {
NSLog(@"------%@",str);
}];

这样就完事了。在具体路径下,就能看到被移过去的文件了。  

iOS NSURLSession 下载的更多相关文章

  1. IOS 网络浅析-(十 NSURLSession下载简介)

    之前本来打算在写两个篇幅,但是在这片开写的时候觉得还是写一个比较好,有利于理解.NSURLSession下载是通过NSURLSession下载代理实现的,上一片也介绍了代理,之所以没有介绍下载是因为, ...

  2. 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)

    这个工具已经准备第二版,读者了解编程软件,可以直接使用,请阅读和使用这个场地 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容 ...

  3. iOS NSURLSession 封装下载类

    周六日鼓捣NSURLSession,效率虽然低下,最后还是有了一点点眉目.昨天和汤老师一起测试,又对它加深了一点理解.趁热打铁,先总结一下. 封装的类,对外用的方法,我写的是类方法,所以,在类方法中, ...

  4. IOS - NSURLSession

    NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...

  5. ios NSURLSession(iOS7后,取代NSURLConnection)使用说明及后台工作流程分析

    NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...

  6. iOS - NSURLSession 网络请求

    前言 NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) @interface NSURLSession : NSObject @available(iOS ...

  7. 利用NSURLSession下载视频,图片,能实现断点续传

    首先分析下载资源到本地,就得有URL ,点击btn ,就会解析网络地址,获取数据,就得有进度条控件 NSURLSession类的实现,通过委托代理模式去实现一些方法,需遵守<NSURLSessi ...

  8. ios 后台下载,断点续传总结

    2018年12月05日 16:09:00 weixin_34101784 阅读数:5 https://blog.csdn.net/weixin_34101784/article/details/875 ...

  9. ios NSURLSession后台传输

    http://www.appcoda.com/background-transfer-service-ios7/ http://www.raywenderlich.com/51127/nsurlses ...

随机推荐

  1. [ZT] 几大酒店集团美国Co-Brand信用卡比较(三)如何选择最适合你的酒店联名信用卡

    原文地址: http://www.3798.com/archives/596.html 接着对我们这种不是某个酒店忠诚客户的用户选择卡片进行分析.首先要强调的是,我们比较的是信用卡项目本身,而不是酒店 ...

  2. [转] - Ubuntu 安装Eclipse

    昨天捣鼓一天,终于在Linux下成功安装Eclipse,这样,就能在Linux下像Windows的Visual Studio一样写程序了. 在网上搜索各种方法,但是没有一种方法是完整可行的,结合各种帖 ...

  3. c++ <string.h>中包括哪些常用函数

    常用函数如下:strlen  求字符串长度strcmp  比较2个字符串是否一样strcat           字符串连接操作strcpy            字符串拷贝操作strncat     ...

  4. GDB打印STL容器内容

    GDB调试不能打印stl容器内容,下载此文件,将之保存为~/.gdbinit就可以使用打印命令了. 打印list用plist命令,打印vector用pvector,依此类推. (gdb) pvecto ...

  5. Excel中如何在两个工作表中查找重复数据

    有时我们可能会在两种工作表中查找重复记录,当数据记录很多时,就必须通过简单的方法来实现.下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助. 方法/步骤   为了讲解的需要,小编特 ...

  6. NVPerfHUD

    http://www.cnblogs.com/cproom/archive/2006/11/13/559287.html NVPerfHUD是一个很好的3D程序调试工具,它是NVPerfKit的一部分 ...

  7. fleetctl --help

    NAME:    fleetctl - fleetctl is a command-line interface to fleet, the cluster-wide CoreOS init syst ...

  8. thinkPHP实现瀑布流的方法

    thinkPHP实现瀑布流的方法 文章TAG:thinkphp 瀑布流 时间:2014-11-29来源:www.aspku.com 作者:源码库 文章热度: 131 ℃ 过期已备案域名,注册就能用!终 ...

  9. PHP不仅仅是PHP

    PHP不仅仅是PHP   PHP不仅仅是PHP. PHP的面试不仅仅会问到PHP语言本身(基本都是基础和细节),下面列举的主要是都是高级工程师的要求 比如:PHP中include和require的区别 ...

  10. JMeter使用点滴

    作为一款小巧易用的性能测试工具,JMeter不仅免费开源而且功能强大.易于扩展,如果有一定Java开发基础的话还可以在JMeter上做扩展开发新的插件等,几乎能满足各种性能测试需求,本文用于收集使用J ...