我什么时候使用CFRelease?

我正在学习iOS编程。

我写了关联地址的代码。

有很多方法。 喜欢

我正在分组。

这里是group1

ABAddressBookCreate(); ABRecordCopyCompositeName(argument); ABRecordCopyValue(argument1, argument2); ABRecordCopyValue(argument1, argument2); ABMultiValueCopyLabelAtIndex(argument1, argument2); ABMultiValueCopyValueAtIndex(argument1, argument2); 

另一个就在这里,group2

 CFArrayGetCount(argument); CFArrayGetValueAtIndex(argument1, argument2); ABMultiValueGetCount(argument); 

我知道有很多其他的方法。

但我不知道什么时候使用CFRelease方法。

我认为group2的所有方法都不做CFRelease

因为包含单词“Get”,没有分配。

我认为group1的所有方法都必须使用CFRelease

因为有一个string“复制”。

我有一本书。

但是有两次使用了CFRelease。

一个是发布ABAddressBookCreate()

另一个是ABAddressBookCopyPeopleWithName。

所有其他的东西都不使用CFRelease。

所以我想知道我什么时候使用CFRelease。

请告诉我什么时候使用CFRelease。

如果函数名称包含“复制”或“创build”,则您拥有该对象,因此在完成工作时必须将其释放。 这被称为“创build规则”。 有关Core Foundation的内存pipe理的更多信息,请参阅Core Management的“内存pipe理编程指南”

当你创build一个Core Foundation对象或者成为它的所有者时,你可以调用CFRelease

查看CFMemorypipe理文档