0

ReactiveCocoa 4.1.0을 사용 중이며 (새로운) Swift 뷰 모델을 (기존) Obj-c보기 컨트롤러와 인터페이스하고 있습니다. RACObserve을 사용하여 뷰 모델에서 문자열 속성을 관찰하는 데 문제가 있습니다. 보기 컨트롤러가 Obj-c에 있기 때문에 MutableProperty을 사용할 수 없습니다. RACObservesubscribeNext은 속성을 처음 설정할 때 한 번 시작되지만 변경 후에는 신호가 발사되지 않습니다. 나는 기본적으로이 :보기 컨트롤러에서신속보기 모델에서 Obj-c보기 컨트롤러로 바인딩하는 방법?

:

보기 모델에서
[RACObserve(self.viewModel, buttonTitle) subscribeNext:^(NSString *title) { 
    // Do something 
    }]; 

:

나는 원래 값에 대한 화재, 그러나 결코 변경된 값을 참조
init() { 
    self.buttonTitle = "Original Value" 
} 
func foo() { 
    self.buttonTitle = "Changed Value" 
} 

에도 변화를 가하고 후 신호 프로듀서 및 사용하여 관찰 observeOn(UIScheduler()).start()

어떤 아이디어?

감사합니다.

답변

1

당신은 KVO를 통해 관찰 할 수있는 모든 속성이 dynamic 인 것으로 표시되어 있는지 확인해야합니다.

+1

답변입니다, 감사합니다! –

0

RACObserve는 KVO를 기반으로합니다. KVO를 신속하게 사용하려면 클래스가 NSObject 클래스를 상속해야합니다. @ 데이비드 로드리게스으로 KVOImplementation

는 말했다 :

dynamic var buttonTitle: String? 
+0

내 뷰 모델은'NSObject'에서 상속됩니다 –

+0

@David Rodrigues가 말한 것처럼 : 'dynamic var buttonTitle : String?' – Catoshi

관련 문제