Here is mine. Although callbacks are based on delegation than block-based, you can easily adapt this. You can also easily add code to limit the number of concurrent downloads by examining the number of current downloads and adding only a new one if it is less than the limit. It also has the remaining temporary rating and beautifully formats the data sizes. Using NSFileHandle, it does not eat your memory, but writes files directly.
user529758
source share