Когда я использую 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", а не выделены.
и я думаю, что группе1 все методы должны использовать CFRelease
потому что есть строка "copy".
У меня есть книга.
но там используется CFRelease дважды.
one - это выпуск ABAddressBookCreate()
другой - это ABAddressBookCopyPeopleWithName.
все другие вещи не используют CFRelease.
поэтому мне интересно, когда я использую CFRelease.
скажите, пожалуйста, когда я использую CFRelease.
Ответы
Ответ 1
Если имя функции содержит "Копировать" или "Создать", то вы являетесь владельцем объекта, поэтому вы должны освободить его, когда закончите свою работу с ним. Это называется "Создать правило". Для получения дополнительной информации об управлении памятью для Core Foundation вы можете обратиться к Руководству по программированию памяти для Core Foundation
Ответ 2
Когда вы создаете объект Core Foundation или становитесь его владельцем, вы вызываете CFRelease
.
Посмотрите документацию по CFMemory