이 스크린 샷은 모두를 설명한다 : UIButton 값을 조사 할 때 XCode 디버거 출력이 예상 한 것과 일치하지 않는 이유는 무엇입니까?
스크린 샷은 2로 buttonType보고 디버거를 표시하지만 콘솔 나타낸 버튼형 = 0 동일한 변수 디버거 콘솔에 도시되고있다. 어떻게이 불일치가 일어나는가?
(gdb) po ((UIButton *)control).buttonType
buttonType이라는 멤버가 없습니다.
로 요청 :
NSLog(@"################ CALL OUT ACCESSORY TAPPED: set pinColor to RED in call out accessory tapped");
NSLog(@"################ CALL OUT ACCESSORY TAPPED: UIButtonTypeDetailDisclosure = %d",UIButtonTypeDetailDisclosure);
NSLog(@"################ CALL OUT ACCESSORY TAPPED: control button type = %d", ((UIButton *)control).buttonType);
if (((UIButton *)control).buttonType == 2) {
NSLog(@" ############# CALL OUT ACCESSORY TAPPED: in buttonType = disclosure");
leftCallOutButton.available = YES;
}
명령문이 false로 평가되는 경우! buttonType가보고되는 경우 이유를 이해하려고 노력하는 2 (사실은 제 2 형으로 생성되는 경우) 마이크에 의해 요청으로
:
(gdb) p (int) [((UIButton *)control) buttonType]
$1 = 0
2009-12-31 14:04:26.821 iParkNow![4432:207] ################ CALL OUT ACCESSORY TAPPED: control button type = 0
(gdb) p (int) [((UIButton *)control) buttonType]
좋아, 그래서이 더 의미가 있습니다. 문제는 buttonType이 2에서 0으로 변경되는 이유입니다. 그 buttonType 2로 만든 어떻게 든 0으로 변경 가져옵니다. 어떤 아이디어 ??
@ennuikiller : 두 줄을 포함하여 "control button type = 0"을 출력하는 NSLog() 호출을 통해 "UIButtonTypeDetailDisclosure = 2"를 출력하는 NSLog() 호출에서 코드를 제공 할 수 있습니까? 그것은 조금 도움이 될 것입니다. –
@ John 귀하의 요청에 따라 게시. – ennuikiller
@ennuikiller : 수정 된 명령을 실행 해 보셨습니까? 결과를 게시 할 수 있습니까? – Mike