Вы можете переопределить сохранение и освобождение для любого класса, чтобы лучше понять, когда счет удержания становится выше, чем вы могли ожидать.
Примерно так:
- (id) retain
{
NSLog(@"Retain: Retain count is now %d", self.retainCount+1);
return [super retain];
}
- (void) release
{
NSLog(@"Release: Retain count is now %d", self.retainCount-1);
[super release];
}
Когда это сказано, я думаю, вы должны проверить, что ваша "утечка памяти" - это не просто что-то, что система кэшировала. Если вы можете последовательно использовать больше памяти, выполняя одну и ту же последовательность снова и снова, то у вас есть утечка.