Particularly since NSURLConnection is deprecated in the current SDK. NSURLSession has been available since IOS 7.<p>While NSURLSession does support resumable downloads, it isn&#x27;t able to resume uploads.<p>The needNewBodyStream: delegate is the closest thing, and that is called when first uploading from an NSInoutStream or when a transmission error occurs for an idempotent request, or an auth challenge occurs when some of the stream has been sent. (Streams cannot be rewound.)<p>Background NSURLSessions can take a file reference to upload, and ideally will perform the upload &quot;at a good time&quot;, hopefully while charging and connected to a stable network. (But it won&#x27;t resume an upload, just retry if possible.)<p>Disclaimer: I&#x27;m &quot;involved&quot;, but not speaking for any parties involved. Mostly because I don&#x27;t get invited to those sorts of parties.