Вы получаете сообщение на консоли, потому что вы запускаете метод запуска в фоновом потоке и не разместили пул автоматического выпуска, который позаботится о восстановлении объектов после их освобождения (количество выпусков == 0),это не происходит в главном потоке, потому что основной поток уже имеет пул, для фоновых потоков, которые вы порождаете, вы несете ответственность за настройку пула автоматического выпуска ... ваше решение - правильное решение проблемы ... так что вотпример того, когда и где использовать пул авто-релиза
Один из способов создания чего-либо для выполнения в фоновом режиме - это вызов метода executeSelectorInBackground объекта NSObject, который, как я полагаю, вы делаете
[myObject performSelectorInBackground:(@selector(myBackgroundMethod:) withObject:nil];
Теперь этометод будет выполняться в фоновом потоке, и вам нужно разместить пул авто-релиза, чтобы он не просочился, например,
-(void)myBackgroundMethod:(id)sender
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
//do stuff
[pool release];
}
надеюсь, что это очистит
Даниэль