Я не знал инструментов "Clang Checker". Спасибо, что потратили время на его тестирование. «Clang Checker» кажется очень мощным, я попробую.
Я полностью согласен с вами RootViewController: «nextController» не утечка, а очиститель памяти. Если вы запускаете приложение с помощью Instrument / Activity monitor, в начале приложение занимает 7 месяцев, а каждый раз, когда вы переходите в дочернюю таблицу, требуется еще 1 месяц памяти:
- через 10 раз приложение занимает 17Mo,
- через 20 раз приложение занимает 27 мес.
и так в конце происходит сбой приложения (если я хорошо помню, приложение не может занять более 40Mo), и это приложение не следует правилам Apple в плане управления памятью.
С моей модификацией, когда вы входите в дочернюю таблицу, она занимает 1Mo памяти, но когда вы возвращаетесь к «корневой» таблице, 1Mo памяти освобождается. Вы можете перейти в другой дочерний стол, возвращаясь, память освобождается. «Единственная» проблема заключается в том, что если вы снова зайдете в дочернюю таблицу, которую уже посетили, произойдет сбой приложения. Итак, я ищу решение, которое заставит приложение освободить память после посещения дочерней таблицы.
Чтобы проверить с помощью монитора инструментов / активности, я следил за памятью, используемой приложением Apple Settings (также приложением с иерархическим представлением таблицы). Когда вы переходите в дочернюю таблицу, требуется 1 месяц память, но когда вы вернетесь, память освобождается.