У меня возникли проблемы с памятью из-за шаблона Xcode для UIPageViewController, кэширующего все данные страницы, поэтому я изменил его, чтобы динамически загружать страницы, поэтому теперь, когда мое приложение получает предупреждение о низкой памяти, оно освобождает память для страницы, не отображающей, но если пользователь быстро пролистывает страницы, нажав на край экрана, он все равно падает. Я предполагаю, что это связано с тем, что он не может быстро освободить память, когда вызывается callReceiveMemoryWarning. Если пользователь медленно переворачивается, он работает нормально. Я ограничил скорость, с которой пользователь может листать страницы, но это все еще происходит. Я хочу, чтобы освободить память каждый раз, когда страница была повернута, и не нужно ждать предупреждения с низкой памятью. Я использую ARC. Есть ли способ сделать это? Или что еще я могу сделать, чтобы это предотвратить? Спасибо.
EDIT:
(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];
}