#ios #objective-c #memory-management #memory-leaks
#iOS #objective-c #управление памятью #утечки памяти
Вопрос:
В моем приложении пользователь может перейти по ссылке. Для этого я использую встроенный браузер. Но когда пользователь посещает сайт, потребление памяти увеличивается с 25 МБ до 50 МБ и не уменьшается, даже если пользователь закрывает браузер или возвращается к предыдущему экрану.
Вот простой код, который я использую для открытия браузера:
AppMainBrowserViewController *mainBrowser = [[AppMainBrowserViewController alloc] initWithNibName:@"AppMainBrowserViewController" bundle:nil];
mainBrowser.urlString = urlString;
[self.navigationController pushViewController:mainBrowser animated:YES];
В моем AppMainBrowserViewController
:
if ([InternetDetector isNetAvailable]) {
if (self.processingIndicatorAlertView == Nil) {
[self showIndicatorView];
}
//Request
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.urlString]];
[self.mainWebView loadRequest:request];
} else {
UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:ALERT_TITLE_MSG message:INTERNET_NOT_FOUND_MSG delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
}
Где я ошибаюсь?
Ответ №1:
Скорее всего, это связано с кешем NSURLCache
. Попробуйте, чтобы перед запуском встроенного браузера он просто установил для кэша значение 0:
int cacheSizeMemory = 0;
int cacheSizeDisk = 0;
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"];
[NSURLCache setSharedURLCache:sharedCache];
Комментарии:
1. Потребляется все та же память.