gpt4 book ai didi

ios - 核心数据 - 尝试预取所有行的属性很慢

转载 作者:行者123 更新时间:2023-11-29 10:50:34 25 4
gpt4 key购买 nike

我在 Collection View 中显示一些图像,并使用 SDWebImage 为所有图像预取缩略图。

我在 NSFetchRequest 中使用了 20 的批量大小,但是当遍历每个对象以获取我需要的图像的 url 时,批量大小的性能增益被浪费了。重新加载数据需要 0.3 秒而不是 0.000295 秒,这会导致 UI 出现明显的延迟。

我试过设置 [request setPropertiesToFetch:@[@"propertyName"]] 但它似乎没有什么不同。我想这不是我要找的方法。

有什么建议吗?

编辑:

我正在使用由 NSFetchedResultsController(和委托(delegate))数据源支持的 UICollectionView。我正在制作一个批量大小为 20 的 NSFetchRequest,并通过 NS-FRC 获取它。我还需要从所有获取的对象中获取 url 列表,即:

for(NSManagedObjectSubclass *object in frc.fetchedObjects) 
// this is causing the slow-down, because it's faulting all the objects
// not what you'd want if you have many objects!
{
[urlList addObject:(object.url)]
}

[SDWebImagePrefetcher prefetchUrls:urlList];
// this runs in the background and downloads/gets from cache a list of images

最佳答案

参见 NSFetchRequest 的类引用,-setPropertiesToFetch:。 “仅当 resultType 设置为 NSDictionaryResultType 时才使用此值。”

您是正确的,遍历所有获取的对象会破坏小批量的好处。不过,我很好奇,为什么您需要一次预取所有图像 URL。如果您这样做是为了触发下载,请考虑在 -awakeFromFetch 中执行此操作:将 object.url 传递给您的 SDWebImagePrefetcher,这将使请求排队并开始或继续处理。您必须子类化 NSManagedObject 才能执行此操作。

关于ios - 核心数据 - 尝试预取所有行的属性很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639308/

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