使用 CFBundleCopyResourceURL 发生内存泄漏

发布于 2024-12-03 17:37:53 字数 479 浏览 2 评论 0原文

Instruments 告诉我,我使用以下几行代码泄漏了内存,

    CFBundleRef mainBundle = CFBundleGetMainBundle ();
    CFStringRef aString =CFStringCreateWithFormat(NULL, NULL, CFSTR("%i"),aNumber);                    
    sound= CFBundleCopyResourceURL (mainBundle, aString, CFSTR ("aiff"), NULL);
    CFRelease(aString);

我确实使用 CFRelease 在此类(顺便说一下,它是 UIView 的子类)的 dealloc 中释放了声音(这当然是 CFURLRef)。

罪魁祸首似乎是 NSURL 和 NSCFString。

但是除了释放声音和aString之外我还能做什么呢?

Instruments tells me, that I'm leaking memory with the following lines of code

    CFBundleRef mainBundle = CFBundleGetMainBundle ();
    CFStringRef aString =CFStringCreateWithFormat(NULL, NULL, CFSTR("%i"),aNumber);                    
    sound= CFBundleCopyResourceURL (mainBundle, aString, CFSTR ("aiff"), NULL);
    CFRelease(aString);

I do release sound - which is of course a CFURLRef - in the dealloc of this class (which by the way is a subclass of UIView) using CFRelease.

The culprits seem to be a NSURL and a NSCFString.

But what else can I do apart from releasing sound and aString?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱你一生 2024-12-10 17:37:53

使用断点与有问题的变量进行交互,这样您就可能解决您的问题。

Use breakpoints to interact with the variable in question, that way you will likely solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文