2009-04-20 4 views
1

iPhone 용으로 만든 사용자 정의 컨트롤이 디버그 모드로 빌드 할 때 완벽하게 작동하지만 릴리스 모드로 빌드 된 경우 부분적으로 만 작동하는 이상한 문제가 있습니다.터치 방식이 릴리스 빌드에서 작동하지 않습니다.

주 래퍼보기는 UIView의 하위 클래스이며 서브 뷰로 추가되는 "단추"행을 포함합니다. 사용자 정의 버튼 클래스는 UIImageView를 확장하고 다음 서명 터치 방법 오버라이드 (override)되어, 아무 일도 발생하지

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

디버그 코드를 구축, 이러한 기능의 4 당신이 기대할 수있는 시간에 호출을 릴리스 빌드 . 나는 그들 각각에 로그인했고 어떤 로그 메시지도 얻지 못하고있다 (다른 로그 작업이 작동 중이다).

또 다른 흥미로운 점은 래퍼 뷰 클래스에서 재정의 된 touchesBegan/Moved/Ended 메서드가 있으며 제대로 작동하고 있다는 것입니다. 래퍼 클래스에있는 메서드를 주석 처리하여 단추에 영향을 미치는지 알아 보았지만 시도하지 않았습니다.

또한 UIImageView 클래스를 UIButton의 서브 클래스로 변경하려고 시도했지만 touchUpInside와 같은 이벤트를 포함하여 동일한 문제가 발생했습니다. 그들은 디버그에서 작동하지만 릴리스하지 않습니다.

일반 이벤트 처리는 물론이 문제를 조사해 보았습니다. 빈 손으로 처리했습니다. 어떤 아이디어가 다음으로 보일까요?

+0

정보에서 알기가 약간 어렵습니다. 모든 타겟을 청소하고 릴리스 빌드를 다시 빌드 할 때 경고 메시지가 표시됩니까? 릴리스 빌드가 디버그 빌드와 다른 대상에 있습니까? –

+0

클린 빌드에는 오류나 경고가 없으며 디버그 대신 릴리스로 설정된 활성 구성을 제외하고 모든 빌드 설정이 동일합니다. 이것은 iPhone, iPod touch 및 시뮬레이터에서 재현 할 수 있습니다. – Loktar

답변

3

"버튼"항목의 래퍼는 높이가 0입니다. 디버그 모드에서 앱은 히트 영역에 있지 않더라도 버튼이 눌러 진 것을 알았습니다. 부모 모드 (clipsToBounds는 NO로 기본 설정되었으므로 버튼 항목은 완벽하게 볼 수있었습니다), 릴리스 모드에서는 그리 많지 않습니다.

바라기를 이것은 내가 겪어야했던 머리를 긁고 디버깅하는 시간을 절약하는 데 도움이되기를 바란다. 나는이 버그를 언젠가는 애플의 버그에 올려 놓았으므로 아마 언젠가는 고쳐질 것이다.

관련 문제