On Oct 29, 2012, at 1:15 PM, Alex Kac wrote:

> ARC conversion is something we're having some issues with, but I won't bore 
> you with the details. I'm trying to convert parts of our project to ARC and 
> so of course there is a learning curve. Primarily between CF code and Cocoa. 
> This one I'm stumped on as I'm just starting the CF/Cocoa _bridging part of 
> my conversion.
> 
> + (BOOL) addGroup: (ABGroup *) aGroup withError: (NSError **) error
> {
>     CFErrorRef* cfError = error;
> 
>     ABAddressBookRef addressBook = 
> CFAutorelease(WebISSafe_ABAddressBookCreateWithOptions(NULL,NULL));
>     if (!ABAddressBookAddRecord(addressBook, aGroup.record, cfError)) return 
> NO;
>     return ABAddressBookSave(addressBook, cfError);
> }
> 
> I'm confused on how to properly bridge the CFErrorRef* and NSError**. I've 
> tried a variety of things, but all give an error. I learn more by example 
> than by definition so the reference docs don't always clarify things for me.

I think you're going to have to use temp variables.

+ (BOOL) addGroup: (ABGroup *) aGroup withError: (NSError **) error
{
    BOOL ret;
    CFErrorRef cfError;

    ABAddressBookRef addressBook = 
CFAutorelease(WebISSafe_ABAddressBookCreateWithOptions(NULL,NULL));
    if (!ABAddressBookAddRecord(addressBook, aGroup.record, cfError)) return NO;
    ret = ABAddressBookSave(addressBook, &cfError);
    if (!ret && error)
        *error = CFBridgingRelease(cfError);
    return ret;
}

Cheers,
Ken


_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to