Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 缓存tableView单元格数据_Ios_Swift_Uitableview_Uiimageview_Custom Cell - Fatal编程技术网

Ios 缓存tableView单元格数据

Ios 缓存tableView单元格数据,ios,swift,uitableview,uiimageview,custom-cell,Ios,Swift,Uitableview,Uiimageview,Custom Cell,在我的应用程序中,我使用URL下载了一些图像,并将它们放在cell.imageView[indexPath.row](这是一个内置imageView的自定义单元格)。 我一次可以看到两个细胞,我注意到这个方法 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> CustomCell { } 每次显示单元格时都会调用它。因此,我的应用程序继续从服务器下载图像,应用程序

在我的应用程序中,我使用URL下载了一些图像,并将它们放在
cell.imageView[indexPath.row]
(这是一个内置imageView的自定义单元格)。 我一次可以看到两个细胞,我注意到这个方法

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> CustomCell {
}
每次显示单元格时都会调用它。因此,我的应用程序继续从服务器下载图像,应用程序的速度非常慢


我想知道是否有可能缓存我已经看到的单元格的数据,所以如果我在tableView中向上滚动,我不需要重新下载图像!讲代码我想调用上面写的func,只要我向下滚动表格,而不是我已经看到的单元格。

你可以,但这需要相当多的工作,所以制作一个库下载/缓存/获取/管理你的图像URL的好人只需将你的图像获取代码与此类别交换即可
UIImageview
,这将提供
UIImageview.sd\ucode>方法


同样,通过cells实现
prepareforeuse()
并使用
sd\u cancel

取消获取,您可以,但这需要相当多的工作,因此,在制作库下载/缓存/获取/管理您的图像URL时,善良的人只需将您的图像获取代码与此类别交换为
UIImageview
,这就提供了
UIImageView.sd\u
方法


此外,使用单元格实现
prepareforeuse()
并使用
sd\u cancel
取消提取,不要重新发明轮子
看看NSCache,它就像一个可变字典,但它是线程安全的。

NSCache对象在以下几个方面与其他可变集合不同:

NSCache类包含各种自动删除策略,这些策略 确保它不会占用过多的系统内存。这个 如果用户需要内存,系统将自动执行这些策略 其他应用程序。调用时,这些策略将删除某些项 从缓存中删除,最大限度地减少其内存占用

您可以从不同位置添加、删除和查询缓存中的项 线程,而不必自己锁定缓存

与NSMutableDictionary对象不同,缓存不会复制密钥 放入其中的对象

这些特性对于NSCache类是必需的,就像缓存可能需要的那样 决定在幕后自动异步地改变自身 如果调用它以释放内存

您可以使用图像的URL为图像设置关键帧,并将其作为值。
.

张贴。

不要重新发明轮子
看看NSCache,它就像一个可变字典,但它是线程安全的。

NSCache对象在以下几个方面与其他可变集合不同:

NSCache类包含各种自动删除策略,这些策略 确保它不会占用过多的系统内存。这个 如果用户需要内存,系统将自动执行这些策略 其他应用程序。调用时,这些策略将删除某些项 从缓存中删除,最大限度地减少其内存占用

您可以从不同位置添加、删除和查询缓存中的项 线程,而不必自己锁定缓存

与NSMutableDictionary对象不同,缓存不会复制密钥 放入其中的对象

这些特性对于NSCache类是必需的,就像缓存可能需要的那样 决定在幕后自动异步地改变自身 如果调用它以释放内存

您可以使用图像的URL为图像设置关键帧,并将其作为值。
.
邮局