Avatar
@propertyWrapper struct PrivateSubject<T, E: Swift.Error> { var wrappedValue: AnyPublisher<T, E> { projectedValue.eraseToAnyPublisher() } let projectedValue = PassthroughSubject<T, E>() } final class Foo: ObservableObject { @PrivateSubject var flashScreen: AnyPublisher<Void, Never> func foo() { $flashScreen.send() } } こういう感じのを考えてました
3:01 AM
一応これでもFoo を直接しってる人からは触れてしまうか・・
3:02 AM
protocolとかで var flashScreen: AnyPublisher<...> {get} の粒度までしか知らない人に対しては隠蔽できます