我正在开发的应用程序的一部分涉及 UIPageViewController,其中每个页面都显示一个存储在 Core Data 中的“条目”。除其他外,条目包括一些正在压缩和存储为 NSData 的图像。因此,要加载这些图像并将它们显示在页面上,我使用 imageWithData,即
photo.image = [UIImage imageWithData:entry.photo];
问题是 imageWithData 不是特别快,因此翻阅页面没有我想要的响应速度。我补救这种情况的最佳尝试是将我的 UIPageViewController 显示的一些视图控制器预加载到一个数组中。(不确定这是否是最好的做法,但你有它)
所以,澄清一下,我有一个导航控制器,它包含 viewControllerA,然后链接到 viewControllerB - 它显示 UIPageView 和 entryControllers(每个页面上一个 entryController)。问题是当我使用导航栏从viewControllerB 回到viewControllerA 时,我希望viewControllerB 的entryControllers 数组从内存中释放。但是,ARC似乎没有这样做。因此,在 viewControllerA 和 viewControllerB 之间来回切换了几次,每次翻几页后,我开始收到内存警告——这最终会清除当前的 entryControllers 数组,并破坏了拥有该数组的目的,因为然后每次我收到内存警告时都必须重新加载条目。
简而言之,当我通过导航控制器返回 viewControllerA 时,ARC 并没有清除我为 viewControllerB 分配的任何内存。我不喜欢那样。如果有人可以提出发生这种情况的原因,或者让我知道我是否以错误的方式处理这整件事,我们将不胜感激。我只是想加快从一页到下一页的转换!
谢谢一堆。