菜鸟教程小白 发表于 2022-12-12 19:22:26

iphone - UIWebViews 的内存问题


                                            <p><p>我有一个 webviewcontroller,我创建了一个实例,然后我更改了请求,并根据在 tableview 中选择了哪一行来显示 webview。</p>

<pre><code>// Replace tableView:didSelectRowAtIndexPath with the following
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{

CGRect rect = self.view.frame;
CGFloat width = .bounds.size.width;
CGFloat height = .bounds.size.height;
rect.size.width = width; //self.view.frame.size.width;
rect.size.height = height; //self.view.frame.size.height;
RSSEntry *entry = ;

page = [ initWithUrl:entry.articleUrl];
page.view.frame = rect;
;

}
</code></pre>

<p>我的问题是,在加载其中一些后,我收到内存警告并崩溃。 </p>

<p>在另一个选项卡中,我还有一个 webView ,它会在选项卡加载时加载谷歌地图。这几乎会在应用程序加载后立即崩溃。 </p>

<p>由于我只为每个实例制作一个实例,我不明白为什么会出现这个问题。之前我每次都新建一个webviewcontroller,然后发布,但是遇到了同样的问题。</p>

<p>这是加载谷歌地图的代码:</p>

<pre><code>@interface MapViewController : UIViewController {
    IBOutlet UIWebView *mapPage;
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
url_string = @&#34;http://maps.google.fr/maps/ms?msa=0&amp;msid=213119412551786463007.0004b3fb7f4c123377402&amp;z=12&#34;;
url = ;
request = ];
;
mapPage.scalesPageToFit = YES;
mapPage.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
;
;
}
</code></pre>

<p>UIWebView 是在界面生成器中创建的。</p>

<p> map 加载完成后,或者当您尝试与 map 进行交互时,它会立即耗尽内存并崩溃。这似乎与上面的问题完全相同,但是这次没有选项卡,或者没有更改 UIWebView 使用的请求。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>每次在 UITableView 中选择行时,都会创建 WebViewController 的新对象并将其 View (出于某种原因?)添加到当前 Controller 的 View 中。我不确定您是否至少从 superView 中删除了该 View (您还必须释放 WebViewController)。当然,它会占用越来越多的内存。 </p>

<p>创建整个 UIViewController 并将其用作 subview 的原因是什么?为什么不使用 UINavigationController?</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - UIWebViews 的内存问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9290021/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9290021/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - UIWebViews 的内存问题