Tôi gặp sự cố khi sử dụng UIWebViews, tôi đã thấy cùng một câu hỏi ở đây nhưng không có câu trả lời hữu ích. câu hỏi là ở đây: UIWebView memory management. Tôi sẽ báo giá:uiwebview và mất bộ nhớ rất lớn
Tôi đang phát triển một ứng dụng sử dụng nhiều UIWebView. Ứng dụng này tạo ra rất nhiều UIWebViews trong khi tải nội dung từ máy chủ của tôi. Một số UIWebView này khá lớn và có rất nhiều hình ảnh.
Nếu tôi sử dụng các công cụ để phát hiện rò rỉ, tôi không phát hiện bất kỳ lỗi nào. Tuy nhiên, rất nhiều đối tượng được phân bổ và tôi nghi ngờ rằng phải làm với UIWebViews.
Khi các bản xem trước web được phát hành vì không còn cần thiết, có vẻ như không phải tất cả bộ nhớ đều được giải phóng. Ý tôi là, sau khi một yêu cầu đến máy chủ của tôi, ứng dụng tạo ra một UITableView và nhiều trang web (các công cụ nói khoảng 8Mb). Khi người dùng chạm vào, tất cả chúng đều được phát hành nhưng việc sử dụng bộ nhớ chỉ giảm khoảng 2-3 Mb và sau 5-10 phút sử dụng ứng dụng mà nó bị lỗi.
Tôi đã tạo ứng dụng thử nghiệm đơn giản và có cùng kết quả.
Đó là một tableView, tôi là tạo DetailsView như thế này:
DetailsVC *detailViewController = [[DetailsVC alloc] initWithNibName:@"DetailsVC" bundle:nil];
detailViewController.n = indexPath.row;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
trong DetailsVC Tôi có một WebView tạo ra trong IB. Tôi tải html như thế này:
NSString *urlAddress;
if (self.n == 0)
{
urlAddress = @"http://www.google.com";
}
else
{
urlAddress = @"http://www.yahoo.com";
}
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
Tôi cũng làm:
- (void)viewDidUnload {
self.webView = nil;
}
Vậy là xong, mỗi khi tôi chọn bất kỳ WebView trong RootViewController tôi mất 2-3 Mb bộ nhớ, Có một giải pháp cho vấn đề này?
Cảm ơn.
nó có vẻ như vấn đề rất cũ và nổi tiếng, mọi người đang chạy vào nó kể từ năm 2008 và vẫn không có giải pháp ((((http://discussions.info.apple.com/thread.jspa?threadID=1729697 – Burjua
Ok, Tôi tìm thấy một ý tưởng làm thế nào để làm việc xung quanh vấn đề này, nó được mô tả ở đây: http: //www.iphonedevsdk.com/forum/iphone-sdk-development/34840-uiwebview-memory-crash-caching-memory-useage.html. Tôi không thể tin rằng đó là cách duy nhất để làm điều đó, bất kỳ suy nghĩ khác? Cảm ơn – Burjua
có thể trùng lặp của [Có bộ nhớ rò rỉ UIWebView?] (http: // stackoverflow.com/questions/648396/does-uiwebview-leak-memory) –