Почему у меня утечка памяти в UIApplication - PullRequest
0 голосов
/ 14 мая 2010

У меня есть проект приложения для iphone. Я проанализировал это, используя инструмент утечки памяти инструментов. По инструментам у меня 2 утечки, трассировка следующая:

start main UIAplicationMain _run CFRunLoopInMode CFRunLoopRunSpecific PurpleEventCallback _UIAplicationHandleEvent sendEvent: handleEvent:withNewEvent:

После этого следа есть два отдельных следа. Что вызывает это и как я могу это исправить?

редактирование: Утечка на второй линии по приборам

 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil); //leak
[pool release];
return retVal;

Ответы [ 2 ]

0 голосов
/ 14 мая 2010

Это может быть ложным срабатыванием. UIApplicationMain, вероятно, создает несколько объектов, которые предназначены для зависания до тех пор, пока приложение существует, и поэтому никогда не удосуживается выпустить их.

0 голосов
/ 14 мая 2010

Вам не хватает NSAutoReleasePool для тем?

Этот второй метод выглядит как своего рода обратный вызов, вызываемый другим компонентом или системным потоком.

В реализации создайте NSAutoReleasePool вверху и отпустите его после завершения метода:

void MyCallback {
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  // do stuff
  [pool release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...