由于 Xcode 的 UIPageViewController 模板缓存所有页面数据,我遇到了一些内存问题,所以我将其更改为动态加载页面,所以现在当我的应用程序收到内存不足警告时,它会释放页面不显示的内存,但是如果用户通过点击屏幕边缘快速翻阅页面,它仍然崩溃。我猜这是因为当 didReceiveMemoryWarning 被调用时它不能足够快地释放内存。如果用户翻转缓慢,它工作正常。我限制了用户翻页的速度,但它仍然会发生。我希望能够在每次翻页时释放内存,而不必等待内存不足警告。我正在使用ARC。有没有办法做到这一点?或者我还能做些什么来防止这种情况发生?谢谢。
编辑:
(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];
}