NSURLCache如何在iOS 4中运行?

时间:2011-06-16 14:19:59

标签: ios4 nsurlcache

当我学习 NSURLCache 文档时,我找不到很多重要的注释。 我发现网络上的许多主题都抱怨使用 NSURLCache NSURLConnection 内存泄漏。当我尝试为iOS 4.3编写一些应用程序时,我发现 MSURLCache 有一些奇怪的行为。

应用程序中:didFinishLaunchingWithOptions: 我设置内存容量为10MB的 NSURLCache 实例,init 使用 NSURLRequestUseProtocolCachePolicy NSURLRequest ,但我无法收到 连接:willCacheResponse: NSURLConnection 委托中的strong>消息。当我在应用程序的不同点检查内存容量时,它是0MB。为什么?可能是Apple通过将 NSURLCache 内存容量设置为0来修复内存泄漏?我创建了自定义 NSURLCache 并覆盖 setMemoryCapacity: 方法:

-(void)setMemoryCapacity:(NSUInteger)memoryCapacity {
    if (memoryCapacity > 0) {
        [super setMemoryCapacity:memoryCapacity];
    }
    else {
        NSLog(@"zero here");
    }
}

然后我开始调试。我的应用程序中有一些输入文本,用户放置了一些URL。新的 setMemoryCapacity: 方法已被调用两次:在我的app委托中,当我将容量设置为10MB并且(非常有趣)用户将焦点设置为文本输入时(参数 memoryCapacity 的结果为0,我在日志中收到“此处为零”字符串)。之后,我收到 连接:willCacheResponse: 消息给 NSURLConnection 委托。 这很奇怪。我不明白为什么。我无法在手册中找到关于此的内容。你有什么想法吗?

0 个答案:

没有答案