The application gives the system an NSURLRequest and an ideal refresh interval, such as every 30 minutes, every few hours, or every day.
iOS executes that request, whenever it deems that it should, and saves the response to a local file.
This is a classic ‘Apple don’t do it this way because it’s not good enough’ answer. If I need to make an OAuth-signed request, for instance, this isn’t going to be good enough, because OAuth signatures have timestamps in them. I can’t queue them up in advance.
Marco’s solution solves Marco’s problem. Which is fair enough.
This would allow Instapaper to download updates in the background, and would also greatly benefit RSS readers, Twitter clients, chat programs, weather and news widgets, and a huge number of other applications.
Twitter needs OAuth. Some other app might need to make multiple requests, based on the response to the first one. My use case might be different still. When Apple produce a solution to this one (and I’m sure they will), I expect it to be cleverer than this.