Iphone ABPersonViewController是否保留其显示的人员ABRecordRef?

Iphone ABPersonViewController是否保留其显示的人员ABRecordRef?,iphone,cocoa-touch,addressbook,core-foundation,Iphone,Cocoa Touch,Addressbook,Core Foundation,安全吗 ABRecordRef addressBookRecord = ...; ABNewPersonViewController *newPersonViewController = [[[ABNewPersonViewController alloc] init] autorelease]; newPersonViewController.newPersonViewDelegate = delegate; newPersonViewController.displayedPerson =

安全吗

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


有没有一个我不知道的标准CoreFoundation模式?

我认为称之为CFRelease是不安全的。
displayedPerson在标题中的定义如下。
因此,当我们设置值时,displayedPerson只是被分配,而不是复制或保留。
因此,我认为我们不能发布它

CFRelease(addressBookRecord);

ABRecordRef是一个结构,所以我认为我们不能基于这个属性来推断内存所有权。根据iPhone操作系统的参考,ABRecordRef只是“const void*”。所以,我认为它就像一个基本类型,比如int。我猜ABNewPersonViewController只是在其中保留了一个指针。所以,如果你提前发布,可能会有问题。
@property(nonatomic, readwrite) ABRecordRef displayedPerson