Recently I work with uploading images from iOS to server, as the Apple Documentation for Autorelease Pool:
If you write a loop that creates many temporary objects.
You may use an autorelease pool block inside the loop to dispose of those objects before the next iteration. Using an autorelease pool block in the loop helps to reduce the maximum memory footprint of the application.
In my case, it allows user to upload multiple images (less than 10) to server and I tried implementing without autorelease pool but there is memory warning when users upload six photos from local album, it works well with autorelease pool.
The image quality taken with iPhone is better and better and size is larger and larger, if it uploads jpg images and usually uses UIImageJPEGRepresentation() to convert UIImage to NSData format which could be passed as parameter to server, it’s so easy to use up memory in this process and use autorelease pool is a mandatory choice.
In a word, autorelease pool delays the call for release and release the object in the end of block automatically.