如果我使用的是weakSelf,我不确定为什么我的NSURLSession会保留控制器。我知道块仍然会被执行,但是当我在委托方法中设置断点(即didReceiveData)时,即使控制器已被解除,我也看到self不是nil。
会感激任何想法。
谢谢!
请参阅下面的代码段
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration
delegate:weakSelf
delegateQueue: nil];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request];
[task resume];
[weakSelf.imagesAndTasks setObject:image forKey:task];
});