How to create CFArrayRef

abrecordref, ios

Solution

toll-free bridging:

where array is kind of class: NSArray

CFArrayRef arrayRef = (__bridge CFArrayRef)array;

Problem

I'm trying to convert just ONE iPhone contact to a vCard using the build in methods. The docs say to use: ``` ABPersonCreateVCardRepresentationWithPeople(CFArrayRef people) ``` ... but my delegate method gives me this: ``` - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person; ``` I can't figure out how to create a `CFArrayRef` with just a single `ABRecordRef`. The docs pointed me to `CFArrayCreate()` which confused me even more. I don't know enough C to figure this out on my own. I read in SO that `NSArray` had something called toll-free bridging and should be interchangeable with `CFArrayRef`but didn't quite understand how to use it since the compiler complained when I tried just swapping them.

Original source

Related problems