我已经找到了很多关于如何解决iPhone Obj C代码内存泄漏的信息.最后两次泄漏让我感到困惑,我可能会忽略一些事情.也许你可以发现它.
Instruments报告以下代码的2个泄漏(UIViewController子类的一部分):
(1) UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height - LOWER_VERT_WINDOW_MARGIN)]; (2) webView.scalesPageToFit = YES; (3) webView.dataDetectorTypes = UIDataDetectorTypeNone; (4) (5) NSURL *url = [NSURL fileURLWithPath:self.fullPathFileName isDirectory:NO]; (6) NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; (7) [webView loadRequest:urlRequest]; (8) [urlRequest release], urlRequest = nil; (9) [self.view addSubview:webView]; (10) [webView release], webView = nil;
仪器声称在第1行泄漏了128个字节,在第4行泄漏了256个字节.不知道它是否意味着第3行或第5行.
有人知道我在忽视什么吗?
1)确保您在设备而不是模拟器上进行泄漏测试
2)如果失败了,请尝试通过将此添加到app appidate中的applicationDidFinishLaunching来设置url缓存:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; [NSURLCache setSharedURLCache:sharedCache]; [sharedCache release];