UIWebview проблема с памятью - PullRequest
       32

UIWebview проблема с памятью

0 голосов
/ 22 сентября 2010

В моем приложении есть большая проблема с памятью
Я добавляю UIScrollview с представлениями viewController динамически, когда мне нужно
, и я правильно удаляю viewController при прокрутке.
и в этом viewController я поместил UIWebiew вIBOutlet и загрузить веб-представление как

[m_objWebView loadRequest:[NSURLRequest requestWithURL:
                  [NSURL URLWithString:@"http://stackoverflow.com/"]]];

и выпустить UIWebview в viewControllers dealloc

- (void)dealloc {

 m_objWebView.delegate=nil;
 [m_objWebView stopLoading];
 [m_objWebView release];
 m_objWebView=nil;

 [[self.view subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

 [super dealloc];
}

, но через 5/6 минут мое приложение вылетает после предупреждения о памяти.

Теперь яизмените код, который я непосредственно добавляю uiwebview в uiscrollview, и выполняю ленивую загрузку трех веб-просмотров.сейчас утечка памяти уменьшится но она все еще есть.но теперь у меня есть другая проблема, что когда пользователь быстро проводит пальцем, есть задержка загрузки веб-контента, каким-либо образом решить эту проблему?

помогите мне заранее спасибо

1 Ответ

2 голосов
/ 29 марта 2011

Удаление подпредставлений из представления UIViewController в dealloc не требуется. Свойство view и все его подпредставления будут автоматически освобождены при освобождении владельца (UIViewController). Все, что вам нужно сделать, это освободить любые свойства, которые вы сохранили. Предполагая, что вы объявили m_objWebView как @property (nonatomic, retain) IBOutlet UIWebView * m_objWebView, тогда все, что вам нужно:

- (void)dealloc {

 m_objWebView.delegate=nil;
 [m_objWebView stopLoading];
 [m_objWebView release], m_objWebView=nil;

 [super dealloc];
}

Итак, я предлагаю вам посмотреть, когда и где вы сохраняете / выпускаете viewController, именно там вы все еще можете оптимизировать вещи. Что касается задержки загрузки веб-контента - это недостаток ленивой загрузки: lazy сводит потребление памяти к минимуму, но, как следует из этого термина, это не быстро.

...