5 iphone cocoa-touch memory-leaks objective-c ios
请帮忙!一直盯着这个12个小时; 并已在线查找,无法找到解决方案.
在我的应用程序中,我在单独的页面/控制器中使用2个UIView控件:
为了隔离我的代码,并使其更容易解释,我创建了一个名为"MyTestApplication"的基于视图的新项目
1 - 我在委托函数中添加了一个简单的NSData dataWithContentsOfUrl.
NSData *imageData = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"]];
Run Code Online (Sandbox Code Playgroud)
(由于它全部使用便利功能,因此无需在此发布)
替代文字http://img.skitch.com/20081110-j5tn5n7ixph95ys4rpchibaw5p.preview.jpg
2 - 运行它以验证没有泄漏(如预期的那样)
替代文字http://img.skitch.com/20081110-fy2qrkgy47hm4fe2f1aakd4muw.preview.jpg
3 - 打开ViewController.xib,只需从库中添加一个UIWebView(无需连线)
替代文字http://img.skitch.com/20081110-d63c3yh1a1kqiciy73q8uyd68j.preview.jpg
4 - 运行它以验证是否有泄漏!(为什么???)
替代文字http://img.skitch.com/20081110-qtxcfwntbcc3csabda3r6nfjg6.preview.jpg
我究竟做错了什么?请帮忙!
如果我使用UIWebView,为什么NSData会导致内存泄漏?我只是不明白.谢谢.
我也遇到dataWithContentsOfURL:了iPhone模拟器中NSData漏洞的问题.我发现当我使用其他方便方法(dataWithContentsOfURL:options:error:)时,我不会得到内存泄漏.
我的代码看起来像这样:
NSURL *url = [NSURL URLWithString:urlString];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url
options:0
error:&error];
Run Code Online (Sandbox Code Playgroud)
我认为这就是正在发生的事情:
加载 ViewController.xib 时,会分配并初始化 UIWebView 的实例。由于您没有在任何地方连接它,因此它不会被释放。我认为您需要将其连接起来并在支持视图控制器的 dealloc 函数中释放它。我记得必须手动释放我在 xib 文件中创建的每个对象。
| 归档时间: |
|
| 查看次数: |
11152 次 |
| 最近记录: |