gpt4 book ai didi

cocoa - 告诉 IKImageBrowserView 不要安排预加载

转载 作者:行者123 更新时间:2023-12-03 16:19:12 30 4
gpt4 key购买 nike

为了重写开源 iMedia 框架项目(目前有数十名开发人员正在使用),我们正在切换到 IKImageBrowserView,并且在缓存方面遇到了麻烦。

看来 IKImageBrowserView 喜欢预加载/预取图像缓存,作为低优先级后台任务,尽可能多地加载尚未可见的项目。这可能很有用,只是我们不想加载 CPU(以及用于远程检索图像的网络)(如果可以的话)。

特别是因为我们有自己的 FIFO 缓存机制(因此我们可以与其他 View 共享缩略图数据到相同的数据中),所以所做的就是将缓存填满容量,然后导致旧项目被转储.

是否有某种方法可以禁用此预加载器的调度? (即使有一个我们现在可以小心使用的未记录的 API,我也一定会提出一个请求,将其变成公共(public) API,因为能够关闭这种危险的功能确实至关重要。)

这确实会影响很多应用程序。如果您能提出任何解决方法,我们将不胜感激。

顺便说一句一些相关讨论: http://lists.apple.com/archives/cocoa-dev/2007/Nov/msg02011.html

最佳答案

我自己已经开始使用 IKImageBrowserView,之前没有注意到这一点,但实际上我尝试过,并且在我自己的应用程序中看到了相同的行为。

看起来 IKImageBrowserView 上有一个名为 _shouldProcessLongTasks 的私有(private)方法。我尝试覆盖它以仅返回 NO,这似乎可以防止 View 中尚不可见的图像的预加载行为(至少在 Snow Leopard 下,必须在 Leopard 下进行测试以查看行为是否相同) 。看起来风险相当低的私有(private) API 使用,因为如果方法发生变化,它就不会再被调用。当您向 Apple 提交有关此问题的错误时,请发布雷达编号,以便其他受影响的人可以对其进行欺骗,并尝试为此获取公共(public) API 和/或行为更改。

根据记录,当前的行为似乎是,只要应用程序位于前台并且包含 View 的窗口是关键,它就会在后台预取内容。如果您切换到另一个应用程序或窗口,它将停止预加载。

关于cocoa - 告诉 IKImageBrowserView 不要安排预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1540426/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com