У меня были некоторые проблемы с памятью из-за шаблона Xcode для UIPageViewController, кэширующего все данные страницы, поэтому я изменил его для динамической загрузки страниц, поэтому теперь, когда мое приложение получает предупреждение о нехватке памяти, оно освобождает память для страницы, которая не отображается, но если пользователь очень быстро пролистывает страницы, нажимая на край экрана, он все равно падает. Я предполагаю, что это связано с тем, что он не может достаточно быстро освободить память, когда вызывается didReceiveMemoryWarning. Если пользователь листает медленно, все работает нормально. Я ограничил скорость, с которой пользователь может перелистывать страницы, но это все равно происходит. Я хочу иметь возможность освобождать память каждый раз, когда страница переворачивается, и не ждать предупреждения о нехватке памяти. Я использую АРК. Есть ли способ сделать это? Или что еще я могу сделать, чтобы предотвратить это? Спасибо.
РЕДАКТИРОВАТЬ:
(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:(SinglePageViewControllerSuperclass *)viewController];
if ((index == 0) || (index == NSNotFound)) {
return nil;
}
index--;
return [self viewControllerAtIndex:index];
}
(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger index = [self indexOfViewController:(SinglePageViewControllerSuperclass *)viewController];
if (index == NSNotFound || index == MAX_PAGE_INDEX) {
return nil;
}
return [self viewControllerAtIndex:++index];
}