首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决地址簿中的对象泄漏

如何解决地址簿中的对象泄漏
EN

Stack Overflow用户
提问于 2013-11-11 14:47:36
回答 2查看 102关注 0票数 0
代码语言:javascript
运行
复制
  ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge  ABRecordRef)([arrTemp1 objectAtIndex:i]),
                                                                 kABPersonPhoneProperty);
                if (ABMultiValueGetCount(phoneNumbers) > 0) {
                    phone = (__bridge_transfer NSString*)
                    ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
                } else
                {
                    phone = @"[None]";
                }

在这行代码之后,我得到了“对象泄漏:分配并存储到'phoneNumber‘中的对象稍后在此执行路径中不会被引用,并且保留计数为+1”。我看到了几个类似的帖子,但没有得到我的问题的确切答案。由于这个泄漏,我的应用程序崩溃了。所以任何知道这一点的人请帮助我

EN

回答 2

Stack Overflow用户

发布于 2013-11-11 15:10:28

试试这段代码。

代码语言:javascript
运行
复制
ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge  ABRecordRef)([arrTemp1 objectAtIndex:i]),kABPersonPhoneProperty);

if (ABMultiValueGetCount(phoneNumbers) > 0) {
      phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
} else {
      phone = @"[None]";
}

CFRelease(phoneNumbers);
票数 1
EN

Stack Overflow用户

发布于 2013-11-11 15:54:42

因为这些对象是CoreFoundation对象,所以您应该使用CFRelease来释放被占用的内存。您必须使用CFRelease(phoneNumbers); . Checkout以下Link来释放ABMultiValueRef对象占用的内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19900416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档