Существует три проблемы с кодом выше, которые могут вызвать утечку памяти.
Сначала вы создаете image
здесь:
UIImage *image = [[UIImage alloc]initWithContentsOfFile:path];
Затем вы назначаете этот указатель image
к чему-то еще, теряя тем самым исходную ссылку:
image=[image addImageReflection:0.50];
addImageReflection
Я полагаю, дает вам автоматически выпущенный объект.
Несмотря на это, вы позже выпускаете image
:
[image release];
То, что вы здесь высвобождаете, это не исходный указатель, который вы выделили, а вместо этого назначенный позднее объект с автоматическим выпуском.Итак, вы создаете вторую проблему, выпуская слишком много.
Наконец, у вас есть третья проблема.Созданный вами объект button
никогда не освобождается:
UIButton *button = [[UIButton alloc]init];