I know this question will appear to be a dupe of many others, however, I don't feel the simple case is well explained here. Coming from an Android and BlackBerry background, making requests through HTTPUrlConnection
instantly fail if there is no connection available. This seems like completely sane behavior, and I was surprised to find NSURLConnection
in iOS did not emulate it.
I understand that Apple (and others who have extended it) provide a Reachability
class to assist with determining the network state. I was happy to first see this and fully expected to see something like bool isNetworkAvailable()
, but instead to my surprise I found a complex system requiring notification registrations and callbacks, and a bunch of seemingly unnecessary details. There must be a better way.
My app already gracefully handles connection failures, including no connectivity. The user is notified of the failure, and the app moves on.
Thus my requirements are simple: Single, synchronous function I can call before all HTTP requests to determine if I should bother actually sending the request or not. Ideally it requires no set up and just returns a boolean.
Is this really not possible on iOS?