title: How would I bridge cast NSNumber to ABRecordID in iOS
body: <p>I start learning programming with Objective-C, and do not have much knowledge of C. So, bridge casting in iOS 6 is still somewhat confusing for me.</p>
  
  <p>Here is the scenario:</p>
  
  <p>I have a person ABRecordID stored in CoreData as 'NSNumber' attribute. Later on, I would like to access to that person directly, so I want to use the person's ABRecordID to access the contact info using ABAddressBook. Noticed that <code>ABAddressBookGetPersonWithRecordID</code> needs ABRecordID, below is how I perform casting in my code...</p>
  
  <pre><code>address_book = ABAddressBookCreate();
  ABRecordID rec_id = (__bridge ABRecordID)person.record_id;
  </code></pre>
  
  <p>However, This was not successful and I was given <code>incompatible types casting 'int' into 'ABRecordID' (aka 'int') with a __bridge cast</code>. </p>
  
  <p>Already confused as it is, what would be a proper way to bridge cast between ARC type and CF type? </p>
  
  <p>Also, in which case should I use <code>(__bridge retained)</code> instead of <code>(__bridge)</code>?</p>