我是否必须使用完成处理程序维护对NSURLSessionDataTask的强引用?

时间:2016-06-28 20:17:11

标签: memory-management nsurlsession

当我在DateColumns >= 5/1/2016 and DateColumn < 8/1/2016 上使用Date API时,我是否必须对我收到的任务保持强烈的引用,以便在完成之前不会取消分配,或者系统是否抓住它直到它完成?

例如,这样就可以了:

dataTaskWithRequest:completionHandler:

或者我必须做这样的事情:

NSURLSession

我使用第一种方法在生产中运行代码并且因为它没有看到崩溃,但它有时可能会默默地失败,因为任务在完成之前被自动释放池收集因此从不调用我的完成块。

1 个答案:

答案 0 :(得分:2)

其中的会话retains the tasks,直到任务完成(包括调用任何完成处理程序)。没有必要自己保留它。