освободить кеш в MKMapView - PullRequest
       12

освободить кеш в MKMapView

0 голосов
/ 13 ноября 2018

У меня есть приложение на основе карты, которое использует MKMapView в качестве основного вида. Пока мой iPad подключен к Xcode, в навигаторе отладки я вижу, что использование памяти продолжает увеличиваться при масштабировании и панорамировании по карте. Я предполагаю, что iOS кэширует листы карты, но не освобождает их до уничтожения MkMapView.

Есть ли способ заставить MkMapView очистить весь кеш?

Если я продолжу выполнять панорамирование и масштабирование, мое приложение, наконец, вылетает, когда использование памяти составляет 3 ГБ.

1 Ответ

0 голосов
/ 14 ноября 2018
func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
    URLCache.shared.removeAllCachedResponses()
}

Очищает кэш получателя, удаляя все сохраненные кешированные ответы URL.


Вы устанавливаете идентификатор повторного использования в представлениях аннотаций?(Это означает, что система может отсоединять эти представления и одновременно сохранять в памяти только небольшое количество представлений. Это также повышает производительность прокрутки, поскольку при прокрутке будут повторно использоваться отдельные представления.)

Используйте этот метод для получения аннотациивид для повторного использования:

// Used by the delegate to acquire a reusable annotation view, or create a new view for registered class, in lieu of allocating a new one.
    open func dequeueReusableAnnotationView(withIdentifier identifier: String) -> MKAnnotationView?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...