2012-11-28 2 views
0
for (int i = 1; i < [[[UILocalizedIndexedCollation currentCollation] sectionTitles] count]+1; i++) { 

    HeaderButton *headerLabel = (HeaderButton *)[tileView viewWithTag:i]; 
} 

모두 안녕하세요, For 루프를 사용하여 내 XIB 파일에있는 버튼 격자를 반복합니다. 영어 버전의 경우 100 % 작동하고 그리드의 26 개 버튼을 모두 찾습니다.iPhone SDK : for 루프 + ViewWithTag 문제

눈에 잘 띄면 LocalizedIndex를 사용하여 적절한 "NUMBER_HERE 미만"문을 반환합니다. 일본어의 경우 < 38을 반환하며 37 개의 버튼을 모두 찾아야합니다.

이제 이상한 문제입니다. 일본어, 스페인어 또는 중국어 버전의 SAME for 루프가 제대로 작동하지 않습니다.

나는 내 마음을 잃고 있습니다. 저는 NSLog 문을 삽입했습니다. 태그가 27 개 (일본인은 37 명, 스페인어 등은 30 명)의 버튼을 찾았습니다. 다음과 같은 메시지가 표시됩니다.

-[UIView setTitle:forState:]: unrecognized selector sent to instance 0x1dd6b640 

UIView에 setTitle : forState : 메소드가 없다는 것을 알고 있습니다. 위의 캐스트 문을 사용하여 특정보기에있는 단추 하위 클래스 단추를 가리 킵니다. 내가 말했듯이, 영어의 경우 100 % 작동하지만, 그렇지 않은 경우에는 그렇지 않습니다.

이렇게해야 할 이유가 없습니다. 내 코드가 100 % 정확합니다. viewWithTag 28에 문제가있는 것 같습니다.

아이디어가 있으십니까?

감사합니다, cocotutch

답변

2

다음은 디버그에 사용뿐만 아니라, 당신이 정리 일단 나중에 유지할 수있는 몇 가지 코드입니다. 프로젝트에 대해 많이 알지 못해서 viewWithTag가 예상치 못한 유형을 찾는 것처럼 보입니다. 블라인드 캐스트를 내성적 인 테스트로 바꿔 봅시다.

+0

로컬 라이즈를 추가 할 때 "Clean 이제 모든 것이 작동합니다. For 루프도 작동합니다. – topLayoutGuide