Post

Replies

Boosts

Views

Activity

Reply to WKInterfaceController.reloadRootPageControllers has a memory leak?
Could bypass this bug by creating singleton and requiring data from it and passing nil to contexts in reloadRootPageControllers method. awakeWithContext in your controller is called in right sequence from first page to the last, so you can retrieve data from singleton in this method and delete requested model right after you retrieve it. Sorry for my English, hope I helped someone. Продублирую на русском, на нем явно лучше объясню. Судя по всему утечка памяти возникает В ЛЮБОМ случае, если использовать больше чем один контекст. Потому единственное решение - не передавать контексты в метод reloadRootPageControllers вообще. Я завел для этих целей специально синглтон, которому передаю данные, а потом вызываю у него метод получить данные из метода контроллера awakeWithContext для одной страницы. В этом методе соответсвенно выдаются данные ТОЛЬКО для одной страницы и тут же эти данные удаляются, поэтому при вызове этого метода второй раз (соответственно из второй страницы) уже будут получены для второй страницы и так далее. Таким образом, получая данные для последней страницы локальный Кеш в синглтоне полностью будет удален. Все это решение держится на том, что при вызове reloadRootPageControllers инициализируются сразу контроллеры для всех страниц и у всех поочередно вызываются awakeWithContext. Поэтому вся последовательность соблюдается и все, в целом работает. Но костыль жесткий, конечно
Oct ’20