Domanda

Utilizzando gli strumenti sul dispositivo viene rilevata una perdita di memoria di 3,50 KB utilizzando il codice Reachability 2.0 di Apple nella mia app.L'oggetto trapelato è GeneralBlock-3584.Lo strumento leak punta al seguente codice:

- (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;
}

Sto praticamente utilizzando l'esempio Reachability direttamente dal codice di esempio Apple, quindi non riesco a capire perché ciò sta accadendo o come risolverlo.

È stato utile?

Soluzione

GeneralBlock-3584 Le perdite sono, secondo le dichiarazioni ufficiali di Apple sui forum degli sviluppatori (controllare http://devforums.apple.com, e fai attenzione ai tuoi NDA), non una vera fuga di notizie e in effetti un bug negli strumenti.

Altri suggerimenti

Prova avvolgendo l'oggetto di raggiungibilità con NSAutoreleasePool. Se ancora esiste prova a restringere fatto verso la perdita con l'autoreleasepool.

Credo che questo sia un problema simile a questo domanda . In realtà sembra che il suo un Bug all'interno CFNetwork e dipende dal sistema operativo, quindi non c'è alcuna soluzione. Apple ha per risolvere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top