Этот тип дефекта может быть трудно отследить. Я рад, что ты нашел это так быстро. К счастью, есть несколько хороших инструментов, которые могут вам помочь.
Прежде всего, используйте Clang статический анализ языка он может найти такого рода дефект, даже если вы никогда не выполняете код.
Если после этого вы обнаружите этот дефект, включите NSZombies , MallocStackLogging и MallocStackLoggingNoCompact, затем используйте malloc_history , чтобы найти место, где было выполнено выделение. Это не идеально, но это очень помогает.