문제

나는 iPhone Development에 익숙하지 않고 여전히 Objective-C 주위에 내 머리를 얻고 있으므로 나와 함께하십시오 :)

메인 뷰 컨트롤러에 속하는 객체 내부에서 레이블의 텍스트를 변경하려고합니다. 음. 나는 그것이 제대로 들린다 고 생각한다.

친숙한 사람들을 위해 AQRecorder 수업 iPhone Reference 라이브러리의 SpeakHere 예: -

매번 레이블을 업데이트하려고합니다 AQRecorder::MyInputBufferHandler (즉, 입력 버퍼가 채워 졌을 때)

나의 첫 번째 접근법은 그것을 수정하는 것이었다 AQRecorder a를 포함하는 클래스 UILabel* 수정 된 생성자에게 매개 변수로 보냅니다. 효과가 있었지만 매우 잘못된 느낌이 들었습니다. 그리고 이제 몇 가지 다른 UI 구성 요소를 수정하고 싶습니다. 더 나은 방법이 있기를 바랍니다.

기본적인 것을 놓친 느낌이 들었습니다. 또는 나는 약간의 리팩토링이 필요합니다.

도움이 되었습니까?

해결책

사용을 살펴보십시오 NSNotificationCenter. 분리 된 알림을 제공하므로 레코더 클래스는 UI에 대해 아무것도 알 필요가 없습니다.

다른 팁

알림 (Kristopher가 제안한대로) 외에도 여러 관찰자가있는 "글로벌"알림이있는 경우 매우 편리합니다.

귀하의 경우 이벤트를 처리하는 수업 (AQRecorder?)는 대의원 프로토콜을 정의하고 대의원을 가질 수 있으며, 클래스는 UILabel (메인 뷰 컨트롤러?)는이 프로토콜을 구현하고 프로토콜 구현에서 레이블을 업데이트 할 수 있습니다 (또는 다른 작업을 수행해야 함).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top