Используйте данные основных данных в качестве кэша браузера в афневоротинге
-
28-10-2019 - |
Вопрос
Я прочитал кое -что о доступе к многочисленным потокам на DB, но все еще не уверен, что для чтения/письма в сочетании с асинхродиционной сетью загрузки. Например, у меня будет страница с изображениями из Интернета, поэтому я получаю их по их URL -адресам, используя Afnetworking, но я хочу сначала проверить на своем DB и написать на нем (или диск) полученное изображение для будущего использования. Что может быть лучшим способом сделать это без блокировки пользовательского интерфейса (например, при прокрутке)? Если я сделаю это с синглтоном, который читает/записывает, это блокирует основной ветку. Спасибо за любые советы по этому поводу.
Решение
Afnetworking - это не инструмент для этого. Вместо этого вы можете воспользоваться встроенной функциональностью NSURLCache
--конкретно Вилка Питера Стейнбергера из Sdurlcache.
В -applicationDidFinishLaunchingWithOptions:
, делать NSURLCache +setSharedCache:
с экземпляром SDURLCache
(с некоторым количеством дискового пространства выделено). Все запросы, сделанные через UIWebView
(а также AFNetworking
, в этом отношении) автоматически будет направлено через NSURLCache
Перед тем, как запрос будет представлен, чтобы проверить кэш. Это ненавязчивая, забрасывается и правильно следует директивам кэша, и это должно решить вашу проблему довольно хорошо.