title: Why do we get the address of AVCaptureSessionInterruptionReasonKey in AVCam sample code?
body: <p>I am reading this sample code (<a href="https://developer.apple.com/library/ios/samplecode/AVCam/Introduction/Intro.html" rel="nofollow">AVCam</a>) about AVCaptureSession and etc. And I notice this following line (<a href="https://developer.apple.com/library/ios/samplecode/AVCam/Listings/AVCam_AAPLCameraViewController_m.html#//apple_ref/doc/uid/DTS40010112-AVCam_AAPLCameraViewController_m-DontLinkElementID_6" rel="nofollow">link to the code</a>): </p>
  
  <pre><code>// In iOS 9 and later, the userInfo dictionary contains information
  // on why the session was interrupted.
  if ( &amp;AVCaptureSessionInterruptionReasonKey ) {
     ...
  }
  </code></pre>
  
  <p>The comment in the code make sense. But what doesn't make sense to me is why do we want to get the address of <code>AVCaptureSessionInterruptionReasonKey</code>. It is defined as the following (in AVCaptureSection.h): </p>
  
  <pre><code>AVF_EXPORT NSString *const AVCaptureSessionInterruptionReasonKey NS_AVAILABLE_IOS(9_0);
  </code></pre>
  
  <p>If the key is defined, how will its address be <code>nil</code>? If this key is not defined, the code will never be compiled, right? Could someone explain to me how this if statement work? </p>