NSURLSession内存泄漏(NSURLSessionConfiguration leaking)

NSURLSession的用法:

  • NSURLSession对象是长期存在的。
  • 一个常见的使用模式是在app启动时创建一个单例,并且在应用程序的生命周期内持有它。
  • 为每个请求新建一个NSURLSession对象是没有必要的,且效率低下的。

上面的用法是最优的,但并不是说你在项目中不能创建多个NSURLSession对象,在一些情况下创建多个NSURLSession对象是完全合理且必要的。但是绝对不推荐为每个请求新建一个NSURLSession对象。

session API的目标是为每个不同逻辑的请求类型新建一个NSURLSession对象。例如:
  • 应用程序中不同的子系统(第三方SDK/开源库)可能会使用它们自己的NSURLSession对象。
  • web浏览器可能会为每个私有浏览选项卡新建一个NSURLSession对象。
  • 邮件类应用可能会为每个账号新建一个NSURLSession对象,因为这样可以控制TLS版本号。
  • 你可能用一个单独的NSURLSession对象处理多个TLS标识。
  • 你可能为普通请求新建一个标准的NSURLSession对象,以及为大型下载任务新建一个background NSURLSession对象。

所有这些都是在一个应用中使用多个NSURLSession对象的完美例子。

重要的事情说三遍,为每个请求新建一个NSURLSession对象是没有必要的,且效率低下的,是绝对不推荐的。

NSURLSessionConfiguration leaking

你可能感兴趣的:(NSURLSession内存泄漏(NSURLSessionConfiguration leaking))