我有一個webviewcontroller,其創建的一個實例,然後我改變請求,並示出了基於在tableview中選擇哪個行上的網頁視圖。記憶問題UIWebViews中
// Replace tableView:didSelectRowAtIndexPath with the following
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
CGRect rect = self.view.frame;
CGFloat width = [UIScreen mainScreen].bounds.size.width;
CGFloat height = [UIScreen mainScreen].bounds.size.height;
rect.size.width = width; //self.view.frame.size.width;
rect.size.height = height; //self.view.frame.size.height;
RSSEntry *entry = [_allEntries objectAtIndex:indexPath.row];
page = [[WebViewController alloc] initWithUrl:entry.articleUrl];
page.view.frame = rect;
[self.view addSubview:page.view];
}
我的問題是,加載其中的幾個之後,我得到內存警告和崩潰。
在另一個選項卡中,我也有一個web視圖,它在加載選項卡時加載谷歌地圖。它幾乎一載入就崩潰了應用程序。
由於我只做了每個實例,我不明白爲什麼會出現這個問題。以前我每次創建一個新的webviewcontroller,然後發佈它,但是我遇到了同樣的問題。
這裏是加載谷歌地圖代碼:
@interface MapViewController : UIViewController {
IBOutlet UIWebView *mapPage;
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
url_string = @"http://maps.google.fr/maps/ms?msa=0&msid=213119412551786463007.0004b3fb7f4c123377402&z=12";
url = [NSURL URLWithString:url_string];
request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url_string]];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
mapPage.scalesPageToFit = YES;
mapPage.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[mapPage loadRequest:request];
[super viewDidLoad];
}
的一個UIWebView在界面生成器創建的。
它運行的內存和崩潰的地圖,只要你嘗試與地圖交互加載完成之後,或。它看起來與上面的問題非常相似,但這次沒有選項卡,或者沒有更改UIWebView使用的請求。
好吧,忘記表視圖的片刻,它也發生在我的另一個選項卡上,其中只有1個UIWebView加載谷歌地圖。我沒有使用UINavigationController,因爲我正在使用基於UITabbarController的應用程序。 – Michael 2012-02-15 08:49:18
您必須展示比當前更多的代碼 - 可能會在代碼中發生任何可能導致問題的事情。閱讀使用儀器和其他診斷工具分析您的代碼並幫助指出問題。查看xcode中的構建和分析工具。 – 2012-02-15 09:24:36
@邁克爾,我看不到你的其他標籤,不能說你爲什麼有麻煩。注意 - UINavigationController可以在UITabbarController中作爲任何其他UIViewController使用。 – beryllium 2012-02-15 09:39:46