---
title: "init(upstream:createSubject:)"
framework: combine
role: symbol
role_heading: Initializer
path: "combine/publishers/multicast/init(upstream:createsubject:)"
---

# init(upstream:createSubject:)

Creates a multicast publisher that applies a closure to create a subject that delivers elements to subscribers.

## Declaration

```swift
init(upstream: Upstream, createSubject: @escaping () -> SubjectType)
```

## Parameters

- `createSubject`: A closure that returns a doc://com.apple.Combine/documentation/Combine/Subject each time a subscriber attaches to the multicast publisher.
