Use property, not iVar.
targetPath property should be copied.
Simplify progressiveDownloadProgressBlock, pass operation object directly.
RFDownloadManager call delegate at main thread now.