Avatar
ObservableObject の実装をするときに、 objectWillChange を経由して View に反映したいようなものは @Published でいいんですが、アニメーションやエフェクトの発火(たとえば画面を光らせるとか)については Publisher として公開しておいて、それを直接 subscribe する形にしておきたいことがあると思います。 そのようなときに、外部に send を公開したくないので↓のように書いているんですが、 final class Foo: ObservableObject { private let _flashScreen: PassthroughSubject<Void, Never> = .init() let flashScreen: AnyPublisher<Void, Never> { _flashScreen.eraseToAnyPublisher() } ... } PassthroughSubjectAnyPublisher を二重に宣言するのがボイラープレート的で嫌なんですが、もっと良い方法はありますか? send の公開を気にせずに PassthroughSubject を公開するという手もありますが・・・。