I want to create an array of ABRecordRef(s) to store contacts which have a valid birthday field.
NSMutableArray* bContacts = [[NSMutableArray alloc] init
I know this is an old question, but since the introduction of ARC, this is handled in a different way.
There are two possible ways of adding an ABRecordRef to an NSMutableArray now, both of which require a bridged cast:
Direct conversion
[bContacts addObject:(__bridge id)(ref)];
This simply converts the ABRecordRef pointer, and should be used, if you didn't create ref yourself using a method that has Create in its name.
Transfer ownership to ARC
[bContacts addObject:CFBridgingRelease(ref)];
This converts the ABRecordRef pointer, and in addition transfers its ownership to ARC. This should be used, if you used e.g. ABPersonCreate() to create a new person.
More information can be found in the Transitioning to ARC Release Notes. There are also many other informative sources here on Stack Overflow, such as this question.