Я могу воспроизвести то, что вы наблюдаете, с помощью Инструментов.Перед тем как отбросить ваш объект, NSMutableArray сохраняет его, делает некоторую магию и затем освобождает его.Этот выпуск противодействует предыдущему сохранению и не имеет никакого отношения к тому, что происходит чуть позже: снова к выпуску, на этот раз потому, что объект удален из массива.
То, что делает внутренняя реализация массива, не должнокасается вас вообще.Он может сохранять / освобождать объект так часто, как ему хочется, важной частью является то, что он вызывает release еще раз, а не сохраняет, потому что вы ожидаете этого при удалении объекта.Таким образом, то, что вы наблюдаете
retain
release
release
, просто прекрасно и никакой утечки памяти вообще нет.При выполнении кода во внутренней реализации removeObject: значение retainCount может возрасти, но как только метод вернется, число фактически уменьшится.