Reachability
All of this is to say that your code must be correct in the absence of reachability, but adopting reachability can greatly enhance usability.
It’s interesting that several commenters suggest only using the reachability API if the actual network request fails. As I recall, originally we were supposed to use reachability first, because some requests aren’t worth causing the modem to start dialing the phone.