2012-06-20 8 views
0

내 연결에 DidReceiveData 메서드 수신 한 백분율 데이터를 인쇄하는 NSLog가 있는데 잘 작동합니다. 이 비율을 UILabel에 표시해야하지만 UILabel이 업데이트되지 않습니다. viewDidLoad 같은 다른 메서드에서 또는 단추를 눌러 UILabel을 업데이트 할 수 있습니다. 그러나 연결에서 데이터를 받았다. 아무런 변화가 없다. 무엇이 여기에 잡을 수 있습니다. 내 레이블과 계산에 아무런 문제가 없습니다. 이 방법은 백그라운드에서 실행될 수 있습니다. 당신이 배경 큐/스레드에서 실행되는을 할 펑키 아무 짓도하지 않은 가정connectionDidReceiveData에서 UILabel을 업데이트하는 중입니다.

+0

didRecieveData에서 UILabel의 값을 변경하면 어떻게됩니까? UILabel 텍스트를 @ "데이터 수신"과 같이 설정하여 실제로 업데이트 중인지 확인할 수 있습니다. – Carter

+0

@Carter도 거기에서 작동하지 않습니다. 나는 그것을 시도했다 – pnizzle

답변

1

(이 기본적으로 메인 큐/스레드를해야한다), 마음에 와서 몇 가지 가능성이 있습니다 :

  1. 뷰가 실제로 설정되기 전에 메서드가 호출됩니다. 이는 UI를 설정하기 전에 네트워크 활동을 시작하는 특정 환경에서 확실히 발생할 수 있습니다.

  2. 실제로 UILabel은 제대로 연결되어 있지 않습니다. 그러나 문제가있는 경우에는 -viewDidLoad으로 작동합니다.

는 테스트 방법에 휴식과 po myLabel은 전무 아니다 있는지 확인합니다.

+0

아니 내 코드는 꽤 간단한, 아니 스레딩 또는 아무것도, 그리고 예, 나는 휴식 지점을 배치하고 UILabel은 아무것도 아니야 .. 나는 인터넷 검색하고 많은 사람들 이이 문제에 직면했다 솔루션을 찾으십시오. – pnizzle

+0

Huh. 단지 호기심에서 벗어나'-setNeedsDisplay' 라벨을 명시 적으로 보내면 어떻게 될까요? –

+0

이렇게 오래 걸리며 작동하지 않았습니다. 그래도 고마워. UILabel을 업데이트 한 직후에 NSLog (@ "value there : % @", myUILabel.text)를 작성했으며 레이블에 있어야하는 값을 실제로 인쇄합니다. 그러나 UILabel 자체는 "0"으로 유지됩니다. (업데이트하지 않음) – pnizzle

관련 문제