Краткий ответ:
Ваш код выглядит нормально.Основное правило заключается в том, что для каждого alloc
, new
, retain
или copy
требуется release
или autorelease
.
LongОтвет:
Давайте посмотрим на ваш код построчно.
UIImage *circleImage = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"item-circle" ofType: @"png"]];
В этой первой строке используется удобный метод.вам не нужно вызывать release ни для чего, так как вы не звонили alloc
, new
, retain
или copy
.
UIImageView *circleImageView = [[[UIImageView alloc] initWithImage: circleImage] autorelease];
Во второй строке вы вызываетеalloc
, но затем вы звоните autoerelease
, так что вам там хорошо.
[imageView setFrame: CGRectMake(-5, -5, 65, 65)];
Опять нет alloc
, new
, retain
или copy
.
UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom];
Еще раз, вы использовали удобный метод.
[button addSubview: circleImageView];
Вы еще не звонили alloc
, new
, retain
или copy
.Поэтому вы не звоните release
или autorelease
.