Generic Instance Method


Assigns a publisher’s output to a property of an object.


func assign<Root>(to keyPath: ReferenceWritableKeyPath<Root, Value>, on object: Root) -> AnyCancellable



A key path that indicates the property to assign. See Key-Path Expression in The Swift Programming Language to learn how to use key paths to specify a property of an object.


The object that contains the property. The subscriber assigns the object’s property every time it receives a new value.

Return Value

An AnyCancellable instance. Call cancel() on this instance when you no longer want the publisher to automatically assign the property. Deinitializing this instance will also cancel automatic assignment.


Use the assign(to:on:) subscriber when you want to set a given property each time a publisher produces a value.

For example, given a type MyViewModel with the property date, the following code uses a Timer.TimerPublisher to set the date property once a second.

let cancellable = Timer.publish(every: 1, on: .main, in: .default)
    .assign(to: \, on: viewModel)