{"title":"\u300cCombine\u3092\u306f\u3058\u3081\u3088\u3046\u300d\u3092\u8aad\u3093\u3060","width":"100%","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftokizuoh.hatenablog.com%2Fentry%2F2022%2F03%2F05%2F134339\" title=\"\u300cCombine\u3092\u306f\u3058\u3081\u3088\u3046\u300d\u3092\u8aad\u3093\u3060 - \u30ab\u30eb\u30dc\u30ca\u30fc\u30e9\u8857\u9053\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"\u30ab\u30eb\u30dc\u30ca\u30fc\u30e9\u8857\u9053","author_name":"tokizuoh","type":"rich","image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/t/tokizuoh/20220305/20220305121312.png","description":"nextpublishing.jp \u7b2c2\u7ae0 Subscribe\u3068Subscription import Combine let subject = PassthroughSubject<String, Never>() final class Receiver { let subscription: AnyCancellable init () { subscription = subject .sink { value in print(\"received:\", value) } } } let receiver = Receiver() subject.send(\"a\") // \"rece\u2026","height":"190","provider_url":"https://hatena.blog","provider_name":"Hatena Blog","blog_url":"https://tokizuoh.hatenablog.com/","url":"https://tokizuoh.hatenablog.com/entry/2022/03/05/134339","categories":["\u8aad\u66f8","Swift","Combine","iOS"],"version":"1.0","author_url":"https://blog.hatena.ne.jp/tokizuoh/","published":"2022-03-05 13:43:39"}