Наконец-то я разобрался, что там произошло.Это просто глупая ошибка и неправильное понимание API.
По секундам для кеширования я думал, что это для сохранения кеша до установки значения.Но, похоже, это не так.Согласно документации
Set secondsToCache on the request to override any expiry date for the content
set by the server, and store this response in the cache until secondsToCache
seconds have elapsed
Таким образом, это значение переопределения, установленное сервером.Таким образом, даже если сервер обновлен новым содержимым и если срок действия, установленный для запроса, не истек, будет использоваться локальная копия.
В качестве исправления я только что удалил строку [request setSecondsToCache:kSecondsToCache];