Помоги мне! Приложение вылетает при установке флажка - PullRequest
0 голосов
/ 20 декабря 2010

Пожалуйста, посмотрите на мой код ниже.

Есть ли какие-либо утечки или проблемы в моем коде, так как мое приложение зависало при установке флажка.

Нужна любая помощь ...

Спасибо!.

// checkbox at normal state
copyMailCheckbox = [[UIButton alloc] initWithFrame:CGRectMake( 150, 220,120 ,40 )]; 
UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"]; 
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal]; 
[normalStateImage release]; 

// checkbox at selected state UIImage
UIImage *checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"]; 
[copyMailCheckbox setImage:checkedStateImage forState:UIControlStateSelected];   [checkedStateImage release]; 

// checkbox at highlighted state UIImage
UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 
[copyMailCheckbox setImage:highlightedStateImg forState:UIControlStateHighlighted];   [highlightedStateImg release];
[self addSubview:copyMailCheckbox];
[copyMailCheckbox release];

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

У вас есть ошибка размещения здесь:

UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"]; 
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal]; 
[normalStateImage release]; 

Этот объект UIImage normalStateImage не требует, чтобы вы вызывали release для него. Помните правило распределения: если вы вызываете init, retain или copy, то вы освобождаете объект. В противном случае вам не следует делать это, потому что у вас нет права собственности на него.

PD: Также проверьте, пожалуйста, на что указывает sudo rm -rf.

1 голос
/ 20 декабря 2010

Это:

*checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"]; 

и это:

*highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 

Вы создаете неизвестный указатель или что-то в этом роде. Я не знаю, как это прошло после предупреждения компилятора, но вам нужно указать UIImage, например ...

   UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 

Кроме того, я бы предложил использовать .png для изображений. Хотя это и не требуется, оно ускоряет некоторые операции по обработке изображений и является обычно рекомендуемым форматом для изображений.

Редактировать: Похоже, ваш код был опечаткой, поэтому не обращайте на это внимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...