大内存泄漏使用可达

问题描述 投票:7回答:3

在设备上使用仪器检测到使用苹果的可达2.0代码在我的应用程序3.50 KB的内存泄漏。泄露的对象是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;
}

我几乎使用可达例如直接从苹果的示例代码,所以我想不通为什么发生这种情况或如何解决呢。

iphone xcode memory memory-leaks reachability
3个回答
6
投票

GeneralBlock-3584泄漏是,根据对开发者论坛苹果官方声明(检查http://devforums.apple.com和介意你的新发展区),不是一个真正的泄漏,其实在仪器的错误。


1
投票

试着用NSAutoReleasePool包装您的可达性对象。如果它仍然存在请尝试缩窄对泄漏完成与autoreleasepool。


0
投票

我认为这是一个类似的问题,这question。实际上似乎它的内CFNetwork的一个Bug,它取决于操作系统,所以没有解决方法。苹果已经修复它。

© www.soinside.com 2019 - 2024. All rights reserved.