2012-04-04 2 views
1

내 iPhone 앱에서 애플리케이션은 XML 형식의 서버에서 데이터를 수신하고이를 UILabel에 표시합니다. 서버에서 오는 데이터에는 £ 기호가 포함될 수 있습니다. 이 부호는 어떤 방식 으로든 인코딩되지 않으며 XML 문자열에 그대로 전달됩니다. 앱은이 문자열을 받아 UILabel에 표시합니다.UILabel의 파운드 기호가 HTML 엔터티로 신비하게 인코딩되었습니다.

이것은 대부분 잘 작동합니다. iOS 5.1을 포함하여 시뮬레이터에서 항상 정상적으로 작동하지만 사용자 중 한 명이 £을 표시하는 대신 UILabel이 실제로는 £을 표시한다는 버그를보고했습니다. 이는 대부분 bizzare입니다.

UILabel의 텍스트는 코드의 단순한 라인으로 설정된다 : I 디버거로 코드를 밟은 올바른 문자열 값 통과 설정되는 것을 알 수

contentLabel.text = [node getValueForKey:keyName]; 

. 나는 또한 시뮬레이터에서 정확한 결과를 볼 수있다.

그러나 (아래 이미지에서 볼 수 있듯이)이 사용자의 전화에서 뭔가 잘못 될 수 있습니다. 제가 누락 된 것이 있습니까? 여기에 무슨 문제가있을 수 있습니까? 더 중요한 건 어떻게 해결할 수 있을까요? 모든 것들이 내 전화 및 시뮬레이터에서 잘 작동한다는 사실 때문에이 일이 복잡해지며이 사용자는 전국에서 나와 내 전화를 통해 물리적으로 액세스 할 수 없습니다.

다음은 시뮬레이터의 스크린 샷입니다 :

Screenshot from the simulator

그리고 여기에 영향을받는 사용자의 휴대 전화에서의 스크린 샷입니다 :

당신이 XML을 구문 분석하는 데 사용하고있는 라이브러리

Screenshot from users's phone

답변

0

문제는 스스로 자신을 해결 한 것으로 보인다. iOS 4 또는 iOS 5에서 재생산하지 못했고 다른 여러 사용자와 통화 할 수 없었습니다. 처음에 문제를보고 한 사용자와 확인한 결과, 그녀는 iOS를 5.1에서 5.1.1로 업그레이드 한 후에 문제가 사라 졌다고 말했다. 오 잘 ... :)

0

?

많은 NSLogging이 활성화되어있는 이메일을 통해 새로운 빌드를 보내보십시오 (어쩌면 testflight를 사용할 수도 있습니다. 멋진 모습 - 들어오는대로 모든 로그를 볼 수 있습니다). 그러면 문제가 어디서 발생하는지 볼 수 있습니다.

테스트 한 시뮬레이터와 다른 iOS 버전입니까? 문제는 iPhone으로 항상 발생합니까? 자신의 iOS 기기는 어떻습니까? 결코 발생하지 않습니까?

모든 임의의 조언을 들어 주셔서 죄송합니다.

동일한 앱 버전, 동일한 기기 (실제 iPhone이 아닌 시뮬레이터) 및 동일한 iOS 버전을 실행중인 경우 문제가 무엇인지 또는 무엇인지 모릅니다.

당신이 게으른 느낌이 있다면 (내가이 일을하지 두시길, 그것의 아주 해키) 당신은 항상 사용할 수 있습니다

finalString = [firstString stringByReplacingOccurancesOfString:@"£" withString:@"£"]; 
+0

답장을 보내 주셔서 감사합니다. 내 장치는 동일한 iOS 버전이지만 실제 전화 모델은 다릅니다. 나는 지금 당장 가서 새로운 전화를받을 여유가 없다. 그래서, 불행히도, 그것은 의문의 여지가있다.나는 보내지는 문자열을보기에 충분한 로그를 가지고있다. 그리고 그 안에 '£'이 없지만'£ '기호 만있다. 아, 그리고 내가 원한다고해도 사용자가 다른 빌드를 설치하게 할 수는 없습니다. 우리는 18 세의 인턴이 iPhone과 노키아 폰의 차이점이있는 박물관에서 일하고 있다고 말합니다. iPhone은 더 시원합니다. –

+0

젠장, 그게 수치 야. 아 글쎄, 당신은 항상 find/replace 기술로 갈 수있을 것 같아요? –

+0

현재 문제를 재현하고 싶습니다. –

관련 문제