firecracker2
V2EX  ›  iOS

NSURLSession 引用维护的问题

  •  
  •   firecracker2 · Sep 23, 2016 · 2350 views
    This topic created in 3522 days ago, the information mentioned may be changed or developed.
    - (void)request {
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue mainQueue]];
        NSURL *URL = [NSURL URLWithString:@"http://lf.snssdk.com/neihan/service/tabs"];
        NSURLSessionDataTask *dataTask = [session dataTaskWithURL:URL];
        [dataTask resume];
    }
    

    执行了这个方法后,并没有引用维护NSURLSession对象,但为什么它还可以正常工作而不会被销毁,底层实现是怎样的呢,哪里有相关内容的介绍?

    Supplement 1  ·  Sep 23, 2016
    对 session 对象执行 invalidate 的方法后,如果这个 session 对象没有其他引用维护后,会被销毁。具体内部如何维护可用的 session 实例,没在文档中找到。
    3 replies    2016-09-23 19:05:11 +08:00
    CDuXZMAPgHp1q9ew
        1
    CDuXZMAPgHp1q9ew  
       Sep 23, 2016
    如果人家内部实现有个单例呢? 或者有个 session pool 供重用呢?
    外面没有引用不代表内部实现没有被其他地方引用吧
    firecracker2
        2
    firecracker2  
    OP
       Sep 23, 2016
    @wujichao 用 Allocations 看的话,一开始是没有实例的,执行一次会新增加一个实例。
    DingSoung
        3
    DingSoung  
       Sep 23, 2016
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1040 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 23:31 · PVG 07:31 · LAX 16:31 · JFK 19:31
    ♥ Do have faith in what you're doing.