我想要访问不同类别的一些声音,并且可以读取并更改多个类别中每个声音的音高值。然后我在我的应用程序委托方法中使用extern FISound *mySound
并将它们加载到我的视图控制器中。它就像一个魅力,但问题是[FIDecoder decodeSampleAtPath:error]
Leaked Object # Address Size Responsible Library Responsible Frame
FISample,1 0x76e9030 32 Bytes Musizs -[FIDecoder decodeSampleAtPath:error:]
NSConcreteData,1 0x76e7100 32 Bytes Foundation +[NSData(NSData) allocWithZone:]
NSConcreteData,1 0x737b080 32 Bytes Foundation +[NSData(NSData) allocWithZone:]
FISample,1 0x76e81c0 32 Bytes Musizs -[FIDecoder decodeSampleAtPath:error:]
有人有这样的问题吗?谢谢。
答案 0 :(得分:1)
即使在使用Instruments检查后,库代码看起来也不错。你能发一个展示漏洞的简短示例代码吗?另外,如何将手动release
调用添加到源?该库使用ARC,因此手动内存管理调用应该是非法的。您是通过引用整个Xcode项目以正确的方式使用库,还是只导入“裸”源文件?
答案 1 :(得分:-1)
XCode 4使用Finch检测到许多可能的内存泄漏。这是因为 Finch没有根据内存管理指南正确命名其方法。
创建对象的方法必须从其方法名称开始 使用“new”,“alloc”,“copy”或“mutableCopy”。
例如,decodeSampleAtPath应重命名为“allocDecodeSampleAtPath”。 然后任何使用此方法的东西都必须释放它。
Finch中有很多方法都没有这样做,而且它们都应该修复。