Большая утечка памяти при использовании достижимости - PullRequest
7 голосов
/ 16 июня 2010

Используя инструменты на устройстве, он обнаруживает утечку памяти объемом 3,50 КБ с помощью кода Apple Reachability 2.0 в моем приложении.Утекший объект - GeneralBlock-3584.Инструмент утечки указывает на следующий код:

- (BOOL) startNotifer
{
    BOOL retVal = NO;
    SCNetworkReachabilityContext    context = {0, self, NULL, NULL, NULL};
    if(SCNetworkReachabilitySetCallback(reachabilityRef, ReachabilityCallback, &context))
    {
        // THIS IS LINE OF CODE WHERE THE LEAK OCCURS:
        if(SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode))
        {
            retVal = YES;
        }
    }
    return retVal;
}

Я в основном использую пример Reachability прямо из примера кода Apple, поэтому не могу понять, почему это происходит или как я это исправляю.

Ответы [ 3 ]

6 голосов
/ 06 июля 2010

GeneralBlock-3584 утечки, согласно официальным заявлениям Apple на форумах разработчиков (отметьте http://devforums.apple.com, и учитывайте свои NDA), не являются настоящей утечкой и фактически являются ошибкой в ​​инструментах.

1 голос
/ 22 июня 2010

Попробуйте обернуть свой объект Reachability с помощью NSAutoReleasePool.Если это все еще существует, попытайтесь сузить, сделанное к Утечке с autoreleasepool.

0 голосов
/ 25 июня 2010

Я думаю, что это похоже на этот вопрос . На самом деле кажется, что это ошибка в CFNetwork, и это зависит от ОС, так что нет обходного пути. Apple должна это исправить.

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