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]