Я анализирую утечки в моем коде Objective-C ++, используя инструментарий, и получаю следующее:
Leaked Object Address Size Responsible Library Responsible Frame
Malloc 32 Bytes,0x8135bc0 32 Bytes AudioToolbox SimAggregateDevice::SimAggregateDevice(__CFString const*, __CFString const*, long&)
__NSCFDictionary,0x8135be0 48 Bytes AudioToolbox CreateDictionaryForDevice(unsigned long)
Malloc 32 Bytes,0x8135c10 32 Bytes AudioToolbox CreateDictionaryForDevice(unsigned long)
Malloc 32 Bytes,0x8135c30 32 Bytes AudioToolbox CreateDictionaryForDevice(unsigned long)
Malloc 48 Bytes,0x8135c50 48 Bytes AudioToolbox SimAggregateDevice::SimAggregateDevice(__CFString const*, __CFString const*, long&)
__NSCFDictionary,0x813a820 48 Bytes AudioToolbox SimAggregateDevice::SimAggregateDevice(__CFString const*, __CFString const*, long&)
__NSCFArray,0x813a850 32 Bytes AudioToolbox SimAggregateDevice::SimAggregateDevice(__CFString const*, __CFString const*, long&)
__NSCFDictionary,0x813a870 48 Bytes AudioToolbox CreateDictionaryForDevice(unsigned long)
Malloc 32 Bytes,0x813a8a0 32 Bytes AudioToolbox SimAggregateDevice::SimAggregateDevice(__CFString const*, __CFString const*, long&)
Malloc 32 Bytes,0x813a8d0 32 Bytes AudioToolbox CreateDictionaryForDevice(unsigned long)
Я предполагаю, что это связано с кодом, который я написал для воспроизведения звука при запуске моего приложения. Я делаю это так: этот метод вызывается в applicationDidFinishLaunching ::
- (void)playJingle {
// This is a detached thread so I need a new pool.
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
// This audio player will be released in audioPlayerDidFinishPlaying.
NSString *newAudioFile = [[NSBundle mainBundle] pathForResource:@"jingle" ofType:@"m4a"];
AVAudioPlayer *av = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:newAudioFile] error:NULL];
[av setDelegate:self];
[av play];
// Release.
[pool release];
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer*)av successfully:(BOOL)flag
{
// Release the AVAudioPlayer.
[av release];
}
в фоновом потоке (вызывается с помощью executeSelectorInBackground: withObject :). Я что-то пропустил? Почему у меня есть эти утечки?
Спасибо!