我读了一些关于 DB 上的多线程访问的内容,但仍然不确定将读取/写入与异步网络下载结合使用的最佳方法。例如,我将有一个包含来自网络的图像的页面,所以我通过它们的 URL 检索它们,使用 AFNetworking 但我想首先检查我的数据库并将检索到的图像写在它(或磁盘)上以备将来使用。在不阻塞 UI(例如滚动时)的情况下,最好的方法是什么?如果我用一个读/写的单例来做到这一点,它会阻塞主线程。感谢您提供任何提示。
问问题
1372 次
1 回答
3
AFNetworking 不是用于此目的的工具。相反,您可以利用 --特别是Peter Steinberger 的 SDURLCache 分支的NSURLCache
内置功能。
在-applicationDidFinishLaunchingWithOptions:
中,使用(分配了一定数量的磁盘空间)NSURLCache +setSharedCache:
的实例。SDURLCache
通过UIWebView
(和,就此而言)发出的所有请求将在发出请求以检查缓存之前AFNetworking
自动路由。NSURLCache
它不引人注目,插入式,并且正确地遵循缓存指令,它应该很好地解决您的问题。
于 2012-01-16T23:42:54.470 回答