Утечка памяти в NWPathMonitor на iOS14

Я только что обнаружил воспроизводимую утечку памяти при использовании NWPathMonitorна iOS14. Также воспроизводится на iOS13, и я подозреваю, что 12 тоже, но смог протестировать только iOS 13.

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

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Just allocate the instance and immediately the leaks will show in instruments
        _ = NWPathMonitor()
        return true
    }

1 ответ

Изменить: я обнаружил, что это была моя ошибка - я забыл позвонить NWPathMonitorс cancel() метод в моем классе deinit, что и послужило причиной утечки. Оставьте это здесь на случай, если кто-то еще сочтет это полезным в будущем.

Исходный ответ: Отзыв открыт с Apple и опубликован в OpenRadar: https://openradar.appspot.com/radar?id=4969412406804480. Надеюсь, это спасет кого-то еще, преследующего их за хвостом, как это сделал я, только для того, чтобы обнаружить, что это ошибка в сетевой структуре!

Другие вопросы по тегам