Iphone 使用CbundlecopyresourceUrl的内存泄漏
Instruments告诉我,我正在用下面几行代码泄漏内存Iphone 使用CbundlecopyresourceUrl的内存泄漏,iphone,ios,memory-leaks,Iphone,Ios,Memory Leaks,Instruments告诉我,我正在用下面几行代码泄漏内存 CFBundleRef mainBundle = CFBundleGetMainBundle (); CFStringRef aString =CFStringCreateWithFormat(NULL, NULL, CFSTR("%i"),aNumber); sound= CFBundleCopyResourceURL (mainBundle, aString, CFST
CFBundleRef mainBundle = CFBundleGetMainBundle ();
CFStringRef aString =CFStringCreateWithFormat(NULL, NULL, CFSTR("%i"),aNumber);
sound= CFBundleCopyResourceURL (mainBundle, aString, CFSTR ("aiff"), NULL);
CFRelease(aString);
我确实使用CFRelease在这个类(顺便说一句,它是UIView的一个子类)的dealloc中发布了sound(当然是CFURLRef)
罪魁祸首似乎是NSURL和NSCFString
但是除了释放声音和aString之外,我还能做什么呢?使用断点与相关变量交互,这样您可能会解决您的问题。尝试使用断点查看它是否真的进入dealloc和alloc,以及执行了多少次。这是一个猜测,考虑到你可能有其他观点,它正在重新加载。谢谢你的提示。不是这样,但你的建议让我走上了正确的道路:除了设置断点,我在释放时记录了“声音”的内容:在某些情况下,我更改了它的值,并且没有想到先释放旧值。现在一切都正常了。