assign(to:on:)
발행된 값을 객체의 프로퍼티에 자동으로 할당! (KVO)
→ UIKit 에 매우 유용하다.
class SomeObject {
var value: String = "" {
didSet {
//값이 변경될 때마다 해야하는 로직
}
}
}
let object = SomeObject()
let publisher = ["Hello", "World"].publisher
_ = publisher.assign(to: \.value, on: object) //KVO 로접근. + 객체 전달.
//이때 객체는 참조타입이어야 하겠군,...
Swift
복사
assign(to:)
@Published 프로퍼티 래퍼로 선언된 프로퍼티에 바로 값을 할당!
•
assign(to:) 는 AnyCancellable 토큰을 리턴하지 않음
◦
→ @Published 프로퍼티가 deinit 될 때 같이 구독이 취소되기 때문.
class someObject {
@Published var value: Int = 0
}
let object = someObject()
object.$value //해당객체에 대한 publisher 값 변경시마다 값 재발행.
.sink { value in
print("Received: \(value)")
}
(0..<4).publisher
.assign(to: &object.$value) //& 를 사용해서 inout 참조를 사용함.
Received: 0
Received: 0
Received: 1
Received: 2
Received: 3
Swift
복사
Swift
복사