2010-12-20 3 views
0

아래 코드를 살펴보십시오.도와주세요! 체크 박스를 선택하면 응용 프로그램이 다운 됨

확인란을 선택하면 응용 프로그램이 작동을 멈추기 때문에 코드에 누수가 있거나 문제가 있습니까?

도움이 필요하십니까 ...

감사합니다.

// 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]; 

답변

3

는 현재 할당 오류가 있습니다. 할당 규칙을 기억하십시오. init을 호출하거나 유지 또는 복사 한 다음 객체를 해제하면 해당 규칙이 적용됩니다. 그렇지 않으면 소유권이 없기 때문에 그렇게해서는 안됩니다.

PD : sudo rm -rf가 가리키는 점도 확인하십시오.

+0

이것이 오타 였을 가능성이 가장 높습니다. –

1

이 :

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

이 :

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

당신은 알 수없는 포인터 또는 무언가를 만드는 것입니다. 당신이 이미지 .png를 사용하는 것이 내가 좋을 것 ... 또한

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

그 컴파일러 경고 과거 얻었는지 모르겠지만, 당신은 예를 들어, UIImage을 지정해야합니다. 필수는 아니지만 일부 이미지 처리 작업의 속도를 높이고 이미지에 일반적으로 권장되는 형식입니다.

편집 : 코드가 오타였던 것 같습니다. 따라서 이것을 무시하십시오.

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

이있는 UIImage 객체 normalStateImage이 일에 출시를 호출 할 필요가 없습니다 :

+0

아니 오타되었습니다 ... pls 코드를보고 내 문제에 대한 몇 가지 지침을 제공 할 수 있습니다 ... – user198725878

관련 문제