Будет ли этот код утечки памяти? - PullRequest
1 голос
/ 20 октября 2010

Я звоню в applicationDidFinishLaunching:

[self performSelectorInBackground:@selector(performReachabilityCheck) withObject:nil];

Вот поле executeReachabilityCheck

-(void)performReachabilityCheck{
    internetReach = [[Reachability reachabilityForInternetConnection] retain];
    [internetReach startNotifer];
    [self updateInterfaceWithReachability: internetReach];
}

Нужно ли создавать пул автоматического выпуска?Если да, то как я могу сделать это в этом контексте?

ОБНОВЛЕНИЕ: Это правильный способ реализации пула автоматического выпуска?

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    [self performSelectorInBackground:@selector(performReachabilityCheck) withObject:nil];
    [pool release]; pool = nil;

1 Ответ

1 голос
/ 20 октября 2010

Да, каждый раз, когда вы выполняете селектор в фоновом потоке, вам нужно обернуть его в AutoreleasePool.Используемые вами классы могут создавать автоматически выпущенные объекты.Если вы запустите это, когда подключены к отладчику, вы увидите много сообщений о «Нет пула автоматического выпуска, просто утечка».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...