Устранить потенциальную утечку памяти объекта - PullRequest
0 голосов
/ 25 января 2012

После использования инструмента анализа в xcode я обнаружил следующее предупреждение в своем коде.(строка 58 и строка 61)

enter image description here

Как я могу устранить утечки в этих случаях?

1 Ответ

4 голосов
/ 25 января 2012

Похоже, XCode не понимает, где нарисовать выделенные линии, фактические ошибки, о которых сообщает clang, находятся в строке 54 и строке 66.

Функция ABAddressBookCreate () должна быть сбалансирована с помощью CFRelease (), когда вы закончили использовать адресную книгу:

if (addressBook) CFRelease(addressBook)

Ваши переменные ABRecordCopyValue () также должны быть освобождены в конце блока цикла:

if (fName) CFRelease(fName);
if (lName) CFRelease(lName);

Функции C, которые возвращают ... Ref-объекты и содержат «Create» или «Copy», как правило, должны быть сбалансированы с помощью CFRelease (). Если функция содержит «Get», она обычно является внутренним указателем или уже находится в пуле автоматического выпуска.

...