Does an ABAddressBookRef remain valid after the AddressBook that it came from 
is released?

Let's say I have a little object that holds onto an address:

@interface AddressInfo : NSObject {
        ABRecordID contactRecordID;
        ABMultiValueIdentifier addressID;
}
@end

Now let's say I want to open an ABPersonViewController to edit the address.  
Can I  get the ABAddressBookRef of the person, release the address book and 
show the ABPersonViewController (as in Code Sample 1) or does the address book 
need hang around (as in Code Sample 2)?

--Code Sample 1--
        // self.address is an AddressInfo instance
        ABAddressBookRef addressBook = ABAddressBookCreate();
        ABPersonViewController *personView = [ABPersonViewController new];
        personView.personViewDelegate = self;
        personView.displayedPerson =
                ABAddressBookGetPersonWithRecordID(addressBook, 
self.address.contactRecordID);
        personView.displayedProperties =
                [NSArray arrayWithObject: [NSNumber numberWithInt: 
kABPersonAddressProperty]];
        personView.allowsEditing = TRUE;
        [self.navigationController pushViewController: personView animated: 
TRUE];
        CFRelease(addressBook);
        [personView release];

--Code Sample 2--
        // self.address is an AddressInfo instance
        ABAddressBookRef addressBook = ABAddressBookCreate();
        ABPersonViewController *personView = [ABPersonViewController new];
        personView.personViewDelegate = self;
        personView.addressBook = addressBook;
        personView.displayedPerson =
                ABAddressBookGetPersonWithRecordID(addressBook, 
self.address.contactRecordID);
        personView.displayedProperties =
                [NSArray arrayWithObject: [NSNumber numberWithInt: 
kABPersonAddressProperty]];
        personView.allowsEditing = TRUE;
        [self.navigationController pushViewController: personView animated: 
TRUE];
        CFRelease(addressBook);
        [personView release];

Thanks,
David F.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to