2010-06-16 12 views
7

Aygıttaki Aygıtları kullanarak, Apple'ın Kullanılabilirlik 2.0 kodunu uygulamamda 3.50 KB'lık bir bellek sızıntısı algıladı. Sızan Nesne GeneralBlock-3584'tür. Aşağıdaki kodu sızıntı aracı puan:Reaktivite Kullanarak Büyük Bellek Sızıntısı

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

Hemen hemen yüzden bu oluyor ya da nasıl düzeltebilirim neden bilemiyorum düz Elma örnek koddan Ulaşılabilirlik örneğini kullanıyorum.

cevap

6

GeneralBlock-3584 sızıntıları geliştirici forumlarında resmi Elma ifadeleri (http://devforums.apple.com kontrol etmek ve NDAS mind), değil gerçek sızıntı Instruments içinde ve aslında bir hata göre vardır.

1

NSAutoReleasePool ile ur reachability nesnesini sarmalamayı deneyin. eğer hala mevcutsa, ovalama otomatiği ile Sızıntıya doğru yapılır.

+1

Neden? Kendi iş parçanızı çatallamadıkça, etrafınızda bir NSAutoReleasePool var. Sarma işe yaramazdı. – GorillaPatch

0

Bu, bu question için benzer bir sorun olduğunu düşünüyorum. Aslında CFNetwork içindeki bir Hata'nın olduğu ve OS'ye, belgesine bağlı olduğu görülüyor, bu yüzden bir çözüm yok. Apple tamir etmeli.