title: __IPHONE_OS_VERSION_MIN_REQUIRED does not return deployment target?
body: <p>Why does __IPHONE_OS_VERSION_MIN_REQUIRED return the base SDK instead of the deployment target?</p>
  
  <p>I want to use a class that can only run on iOS 4.3 and greater, but still support 4.0 and greater. To achieve this, I assert if I try to use this class on devices with an iOS version lower than 4.3. To avoid asserting, I avoid the class in-code by checking for the availability of the 4.3 methods. The deployment target is currently set to 4.0.</p>
  
  <p>However, because the asserts would only happen when I run the application on an old device, I also want to add a warning if the deployment target is less than 4.3. I am trying to use <code>__IPHONE_OS_VERSION_MIN_REQUIRED</code>. However, this somehow keeps returning <code>50000</code> (the base SDK) instead of something below <code>43000</code> and I can't figure out why. </p>
  
  <p><em><strong>Code:</em></strong></p>
  
  <pre><code>NSLog(@"Deployment target: %i", __IPHONE_OS_VERSION_MIN_REQUIRED); // Returns 50000 instead of 40000.
  #if __IPHONE_OS_VERSION_MIN_REQUIRED &lt; 43000
  // Never gets here
  NSLog(@"%@", @"WARNING! NWMethodWrapper does not work on iOS versions below 4.3. If you insist on supporting older iOS versions, make sure you do not call NWMethodWrapper methods unless dlsym(RTLD_DEFAULT,\"imp_implementationWithBlock\") evaluates to true.");
  #endif
  NSAssert(dlsym(RTLD_DEFAULT,"imp_implementationWithBlock"), @"NWMethodWrapper uses methods that are only available from iOS 4.3 and later."); // Asserts, as appropriate (running on iOS 4.2.1).
  </code></pre>
  
  <p><strong>Edit:</strong> My deployment target is already set to 4.0, which is why I'm asking the question.</p>