• NSURLConnection及NSURLConnectionDataDelegate


    为了说清楚下一篇文章需要了解一下NSURLConnection及NSURLConnectionDataDelegate

    .NSURLConnection

    @interface ViewController ()<NSURLConnectionDataDelegate>

    @end

    @implementation ViewController

    - (void)downLoadFile2{    

        NSURL * url = [NSURL URLWithString:@"http://localhost/resources/videos/minion_03.mp4"];    

        NSURLRequest * request = [NSURLRequest requestWithURL:url];   

        //NSURLConnectionDataDelegate代理方法,不是NSURLConnectionDelegate和这个NSURLConnectionDownloadDelegate.异步子线程,自动开启下载,

        [NSURLConnection connectionWithRequest:request delegate:self];   

        //这个方法和上面的相同

        [[NSURLConnection alloc] initWithRequest:request delegate:self];

        //后面参数为YES表示立刻执行,与上面两个方法相同.  当参数为NO时,此行代码只是建立连接

        NSURLConnection * conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];    

        //根据需求在恰当的时候要手动开启任务.

        [conn start];

    }

    .NSURLConnection及代理方法:

    //NSURLConnectionDataDelegate常用代理方法:

    //请求失败时调用(请求超时.网络异常)

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

    }

    //接收到响应就调用

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

    }

    //接收到服务器数据就会调用,可能会被调用多次,如果文件很小,只调用一次就下载完,如果文件很大一点一点下,调用多次

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

    }

    //加载完毕后调用(服务器数据已经完全下载那一刻调用)

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

    }

    因为应用是在沙盒(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:

    Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录

    tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应

    用退出后删除

    Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

    在一个APP中如果要数据跟随APP长时间保存又不需要备份,要将数据存储到APPLibrary-->Caches文件夹中(沙盒),不能存储到Documentstmp文件夹中,tmp文件夹在内存吃紧的时候回自动清除掉,Documents文件夹是用来备份的,如果这个文件夹内容过大是不能通过Apple审核的.

  • 相关阅读:
    C# 高效字符串连接 StringBuilder介绍
    C#图解教程
    C#中string类型是值类型还是引用类型?
    UML类图10分钟快速入门
    C#设计模式--单例模式
    计算机是如何启动的?
    2018年计划
    转:SQL进阶之变量、事务、存储过程与触发器
    2020/02/06,武汉
    2020/02/06,渐渐,from eason for you for her
  • 原文地址:https://www.cnblogs.com/LDSmallCat/p/4957448.html
Copyright © 2020-2023  润新知