Код, который у вас есть, не имеет утечки.
Вы должны думать о праве собственности.Вам не принадлежит zero
здесь, поскольку он не был возвращен из alloc
или new
.Так как вы не владеете им, вам не нужно release
это.
Что вы думаете о том, что insertObject:
увеличивает retainCount
, что верно.Когда вы вставляете zero
в свои массивы, randomUsed
и alphaKeys
сохраняют ваш нулевой объект.В данном случае это массивы, а не вы. Они должны освободить его, а не вы.
Если есть утечка, то утечка происходит из-за самого массива, а не из вашего zero
объекта.
Пожалуйста, просмотрите руководство по управлению памятью какао .