【发布时间】:2012-02-18 04:55:07
【问题描述】:
在 xcode 中使用分析工具后,我在代码中发现了以下警告。 (第 58 行和第 61 行)
在这种情况下我该如何修复泄漏?
【问题讨论】:
-
请不要使用代码截图;这只会让人难以阅读。至少花时间复制粘贴它。您可以通过评论指明收到通知的行。
标签: objective-c ios memory-leaks
在 xcode 中使用分析工具后,我在代码中发现了以下警告。 (第 58 行和第 61 行)
在这种情况下我该如何修复泄漏?
【问题讨论】:
标签: objective-c ios memory-leaks
看起来 Xcode 对在哪里绘制高亮线感到困惑,clang 报告的实际错误在第 54 行和第 66 行。
当您使用完通讯录后,ABAddressBookCreate() 需要通过 CFRelease() 来平衡:
if (addressBook) CFRelease(addressBook)
您的 ABRecordCopyValue() 变量也需要在循环块的末尾释放:
if (fName) CFRelease(fName);
if (lName) CFRelease(lName);
返回 ...Ref 对象并包含“创建”或“复制”的 C 函数通常需要通过 CFRelease() 来平衡。如果函数包含“Get”,它通常是一个内部指针或已经在一个自动释放池中。
【讨论】: