You could override setAddressBookRef:
so that it retains the address book ref, and release it after assign the property.
Something like this. You'll want to check for NULL, since calling CFRetain/Release with it will cause a runtime error.
- (void)setAddressBookRef:(ABAddressBookRef)addressBook
{
CFRetain(addressBook);
CFRelease(_addressBookRef);
_addressBookRef = addressBook;
}