title: How to access addressbook without copying the whole contact to an NSArray?
body: <p>This is how I do things now:</p>
  
  <pre><code>-(void)vPopulateContact
  {
      NSArray * arPeople = (__bridge_transfer NSArray*)(ABAddressBookCopyArrayOfAllPeople( self.addressBook));
      NSMutableArray * arPeople1 = [NSMutableArray array];
      for (id somePeople in arPeople) {
          ABRecordRef ABPerson= (__bridge ABRecordRef)somePeople; //do not transfer ownership
          RCABRecordRef * abRRWrapper = [[RCABRecordRef alloc]init];
          abRRWrapper.abRecordRef=ABPerson;
          [arPeople1 addObject:abRRWrapper];
      }
  
  
      NSArray * arPeople2=[arPeople1 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
          RCABRecordRef * abr1 = (RCABRecordRef*) obj1;
          NSDate * date1=abr1.dDatedAdded;
          RCABRecordRef * abr2 = (RCABRecordRef*) obj2;
          NSDate * date2=abr2.dDatedAdded;
          return [date2 compare:date1];
      }];
  
      self.allMyContacts=[arPeople2 subarrayWithRange:NSMakeRange(0, MIN(200,arPeople2.count))].mutableCopy;
      [self.tableView reloadData];
  }
  </code></pre>
  
  <p>Copying the whole address book to nsarray is memory hogging. So I want something that works without it.</p>
  
  <p>Say I want to find the 5th person or stuff like that. How would I do so?</p>
  
  <p>Should I just copy the person's ID and then look up address book based on id?</p>