title: How to use iOS Reachability
body: <p>I'm developing an iPhone app that uses the network. The iPhone communicate with my server via HTTP request and should work on WiFi and 3G.<br>
  I currently use <code>NSURLConnection initWithRequest</code> to send async requests to my server and get responses (but I will soon move to work with <code>ASIHTTPRequest</code> library)</p>
  
  <p>I understood that with this kind of apps(apps that requires internet connection) I should (must?) use Reachability.  </p>
  
  <p>After searching the web and looking at Apple's Reachability example code i still don't understand some basic stuff:</p>
  
  <p><strong>What is the main purposes of Reachability?</strong></p>
  
  <p>In apple's example they detect network issues with the host, WiFi and 3G and present the user with an appropriate message.<br>
  Is this the main purpose of Reachability, to show the user a message?
  Or do I need to use it for other more practical scenarios? For example if <code>NSURLConnaction</code> request has failed do I need to use Reachability somehow to resend the request?</p>
  
  <p><strong>What is the proper use of Reachability?</strong></p>
  
  <p>Is it common to use only <strong>one</strong> instance when app launch, and then listen to network changes? Or should I check myself the reachability status before every network request?<br>
  Is it enough to use <code>reachabilityWithHostName</code> or do I need also <code>reachabilityForLocalWiFi</code> and <code>reachabilityForInternetConnection</code>?  </p>
  
  <p><strong>One more thing</strong>, I understood apple can reject apps that use the network and don't use Reachability.<br>
  What are the "<strong>must</strong>" do methods I should implement?<br>
  Will it be enough to just notify the user that currently there is no internet?</p>