我读了一些有关在数据库上进行多线程访问的内容,但仍不确定与异步网络下载结合进行读写的最佳方法。
例如,我将创建一个页面,其中包含来自网络的图像,因此我将使用AFNetworking通过它们的URL检索它们,但我想先在DB上检查并在检索到的图像(或磁盘)上写上,以备将来使用。
在不阻塞UI的情况下(例如滚动时),这样做的最佳方法是什么?
如果我用一个读写的单例来做,则会阻塞主线程。
感谢您提供的任何提示。
最佳答案
AFNetworking并非用于此目的的工具。相反,您可以利用NSURLCache
的内置功能-特别是Peter Steinberger's fork of SDURLCache。
在-applicationDidFinishLaunchingWithOptions:
中,对NSURLCache +setSharedCache:
实例(分配了一定数量的磁盘空间)执行SDURLCache
。通过UIWebView
(和AFNetworking
)发出的所有请求都将在发出检查缓存之前自动通过NSURLCache
路由。它是不干扰用户的,直接插入的,并且可以正确地遵循缓存指令,并且可以很好地解决您的问题。
关于ios - 在AFNetworking中将核心数据用作浏览器缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852327/