2017-10-18 9 views
0

MutableProperty의 값을 설정하면 제작자가 동일한 값으로 새 이벤트를 방출합니까?프로듀서가 속성의 기존 값을 가진 이벤트를 방출하지 못하도록 제한하는 방법은 무엇입니까?

즉, 같은 값을 가진 새 이벤트를 원하지 않는다면이 작업을 수행해야합니까? = 확인?

let really = MutableProperty<Bool>(false) 

func updateReality(newReality: Bool) { 
    if really.value != newReality { 
     really.value = newReality 
    } 
} 

답변

0

속성은 이전 값과 동일하더라도 항상 새 값을 보냅니다. 이 방법이 아니면 그렇지 않으면 Equatable 유형과 함께 사용할 수 없습니다. 당신이 Equatable 유형을 다루고있는 경우에, Bool처럼, 당신은 단지 새로운 값을받는 새 속성을 만들 귀하의 재산에 skipRepeats operator를 사용하고 소비자에게 해당 속성에 노출 : 그래서 당신을

let really = MutableProperty<Bool>(false) 
let reallyWithNoRepeats = really.skipRepeats() 

really.value을 통해 값을 업데이트하지만 소비자는 reallyWithNoRepeats에 가입하여 새 값만 가져옵니다.