I am using NSURLSession + NSURLDownloadTask with completionHandler:
[session downloadTaskWithURL:downloadURL completionHandler:^(NSURL *location, NSURLRespon
To employ the didWriteData method of the NSURLSessionDownloadDelegate, you sadly have to use the rendition of downloadTaskWithURL without the completionHandler and then implement your own URLSession:downloadTask:didFinishDownloadingToURL: to perform those actions you otherwise would have done in the completion handler.
This is a little annoying (especially since the NSURLSessionDownloadDelegate is set at the session object), but it's how it works.