Я работаю над приложением и у меня осталась 1 утечка.Протекший объект - NSAutoreleasePool, размер - 32 байта.В трассировке стека вызываются только основные методы.Я понятия не имею, как решить эту проблему.
В симуляторе нет сообщений об утечках, на устройстве только эта утечка.
Есть идеи?
Автозапуск - это то, что я определяю сам.
В моем viewcontroller я вызываю:
[self performSelectorInBackground:@selector(getDetailInfo:) withObject:self.infoID];
Это getDetailInfo:
- (void)getDetailInfo:(NSString *)theID {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
DetailInfo *info = [[DataProvider sharedInstance] getDetailInfo:theID]; //the return object is autoreleased.
[self performSelectorOnMainThread:@selector(updateViewWithDetailInfo:) withObject:info waitUntilDone:NO];
[pool release];
}
Некоторая дополнительная информация:
Для тестирования я изменил всемои методы, которые были вызваны с помощью executeSelectorInBackground для запуска в главном потоке и удалили эти автозапуска.
Я все еще получил утечку на NSAutoreleasePool.Сегодня я узнал, что вы можете показывать «Имя библиотеки» в трассировке стека в инструментах.:-) Я скопировал его ниже, и вы можете увидеть MapKit в строках 6 и 7.
0 libSystem.B.dylib calloc
1 libobjc.A.dylib _internal_class_createInstanceFromZone
2 libobjc.A.dylib class_createInstance
3 CoreFoundation +[NSObject(NSObject) allocWithZone:]
4 Foundation +[NSAutoreleasePool allocWithZone:]
5 CoreFoundation +[NSObject(NSObject) alloc]
6 MapKit TileCachePrivate::runCacheThread()
7 MapKit _runCacheThread(void*)
8 libSystem.B.dylib _pthread_start
9 libSystem.B.dylib thread_assign_default
Этот код для просмотра карты:
MKMapView *omgeving = [[MKMapView alloc] initWithFrame:CGRectMake(11, 22, 298, 297)];
omgeving.delegate = nil;
[self addSubview:omgeving];
[omgeving release];
Если я закомментирую MapViewкод, нет утечки.Если я оставлю это, я получу утечку.
Leaked Object # Address Size Responsible Library Responsible Frame
NSAutoreleasePool 0x6a52e50 32 Foundation +[NSAutoreleasePool allocWithZone:]
Спасибо за все комментарии до сих пор.Есть предложения?