I had considered writing a custom url cache, but it seems that NSURLCache is supposed to support a disk cache. I'd like to have my iphone app use cached responses without hitting the server at all until the resource becomes stale (as determined by the headers I send back from the server).
Do I have to call something fancy with NSURLConnection? How can I get the iphone to use the cached version of the url?
Update: Here is a link to my code
Caching with the policies as described by @typeoneerror seems to work fine if you're using etags in your requests.
The answer is, unfortunately, that the iPhone can't do disk caching with NSURLCache, making it inappropriate for the scenario I outlined.
I'm rolling my own class.
Take a look at the ASI classes while you're at it.
http://allseeing-i.com/ASIHTTPRequest/
They are pretty nice.
I think you may need to add a "cachePolicy" to your NSURLRequest:
http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html#//apple_ref/doc/uid/20001843
There's a few different policies there. Perhaps one of them will help.