Does ABPersonViewController CFRetain its displayed

2019-07-16 01:45发布

问题:

ABRecordRef addressBookRecord = ...;
ABNewPersonViewController *newPersonViewController = [[[ABNewPersonViewController alloc] init] autorelease];
newPersonViewController.newPersonViewDelegate = delegate;
newPersonViewController.displayedPerson = addressBookRecord;

Is it safe to

CFRelease(addressBookRecord);

?

Is there a standard CoreFoundation pattern around this I'm not aware of?

回答1:

I don't think it's safe to call CFRelease.
displayedPerson is defined as follows in the header.
So, displayedPerson is just assigned and not copied or retained when we set the value.
Therefore, I think we can't release it.

@property(nonatomic, readwrite) ABRecordRef displayedPerson