Tôi đã gặp một số vấn đề về bộ nhớ do mẫu của Xcode cho một UIPageViewController lưu vào bộ nhớ đệm tất cả dữ liệu trang, vì vậy tôi đã thay đổi nó để tải động các trang, vì vậy bây giờ khi ứng dụng của tôi nhận được cảnh báo bộ nhớ thấp, nó sẽ giải phóng bộ nhớ để trang không hiển thị, nhưng nếu người dùng đang lướt qua các trang thật nhanh bằng cách chạm vào cạnh của màn hình, nó vẫn bị treo. Tôi đoán điều này là do nó không thể giải phóng bộ nhớ đủ nhanh khi didReceiveMemoryWarning được gọi. Nếu người dùng lật chậm, nó hoạt động tốt. Tôi đã giới hạn tốc độ mà người dùng có thể lật trang, nhưng nó vẫn xảy ra. Tôi muốn có thể giải phóng bộ nhớ mỗi khi lật trang và không phải đợi cảnh báo bộ nhớ thấp. Tôi đang sử dụng ARC. Có cách nào để làm việc này không? Hoặc tôi có thể làm gì khác để ngăn chặn điều này? Cảm ơn.
BIÊN TẬP:
(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];
}