![見出し画像](https://assets.st-note.com/production/uploads/images/35233928/rectangle_large_type_2_4023b442b5ab35b21963f43b05235c0d.png?width=1200)
Swiftでいこう! - "Combine"とは?
奥が深そうなCombineです。
紹介サイトを挙げてみました。
動画サイトががわかりやすいです。全5回あるようです。単純に行ってしまえば、2つの要素のやりとりです。
"Publisher"と"Subscriber"
"Publisher"は目的のデータを送るもの。
"Subscriber"は受けとる側
試していきます。まずpublisher、データを送るものを作っていくのですが、これは便利なものが用意されています
その"just"を使っていきます。"just"は"Subscriber"のメソッドを持っているので実装も簡単にできます。Playgroundでやっていきます。まず"import"
import Foundation
import Combine
そして"just"を使います。".sink"を使って受けても作ります。
"receiveCompletion:"のあとはクロージャ でswitch文で選択させます。そのあと、"receiveValue:"で受けた値を取り出します。
Just(10).sink(receiveCompletion: {completion in
switch completion {
case .failure(let error):
print(error.localizedDescription)
case .finished:
print("finished")
}
},receiveValue: {value in
print("recive:\(value)")
}
)
recive:10
finished
と出力されました。もっとシンプルに
Just(100).sink(receiveValue: {value in
print("recieve:\(value)")
})
recieve:100
でも値が取れるようです。ただこれだけでは使うことができません。
".sink"の上にカーソルを載せて"option",クリックすると
が出てきます。"sink"の返り値が"AnyCancellable"となっているので、変数に代入してやることで値が使えます。(紹介動画でみるとわかりやすいです)
こうやってみると意外と簡単なようにも思えますが、使い所がわからないです。